如何使用公开 API 并与数据库通信的应用程序练习高效的 TDD



我倾向于编写很多应用程序,例如,将API暴露给逻辑,逻辑将调用同一逻辑中的其他API,然后在最后将某种形式的数据持久保存到数据库中。因此,换句话说,我倾向于使用一个方法调用来封装调用其他 API、处理数据然后持久化到数据库。

我熟悉TDD(测试驱动开发(,但我发现很难实践,因为我最不想做的是在运行强制测试的同时将无用的数据保留在生产数据库中,并且还调用我无法控制的外部 API 并依次弄乱他们的数据库。

我可能看错了。

如何练习高效的TDD并避免这个问题?

如何练习高效的TDD并避免这个问题?

设计。

粗略地说,我们安排我们的代码,使其成为两种风格的模块的组合

  • 易于测试的模块
  • 简单稳定的模块

因此,实际需要与数据库通信的代码应该是第二种类型;没有分支,琐碎的操作,最重要的是它不需要经常更改。

我们编写的代码本质上是有风险的?进入一个"易于测试"的模块。 这些模块只是松散地耦合到它们更简单的表亲 - 用"测试"实现代替"真实"实现应该很容易。 因此,在测试期间,我们不是与"数据库"交谈,而是与内存集合中的一些对话,这些集合只是为我们提供脚本响应。

简而言之,我们安排代码,以便轻松测试错误所在。

至于难以测试的位;好吧,也许我们以其他方式衡量风险,或者我们以不同的节奏运行这些测试,或者我们将它们的测试推迟到功能测试,或者......

最新更新