【问题标题】:How do I practice efficient TDD with applications that exposes API and speaks to database如何使用公开 API 并与数据库对话的应用程序练习高效的 TDD
【发布时间】:2020-01-22 00:51:00
【问题描述】:

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

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

我可能看错了。

如何实践高效的 TDD 并规避这个问题?

【问题讨论】:

标签: tdd


【解决方案1】:

如何实践高效的 TDD 并规避这个问题?

设计。

大致上,我们安排我们的代码,使其成为两种风格的模块的组合

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

所以实际需要与数据库对话的代码应该是第二种;没有分支,琐碎的操作,最重要的是它不需要经常更改。

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

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

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

【讨论】:

  • 谢谢!我会相应地安排我的代码并编写我的测试。现在一切都开始有意义了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-12
  • 2011-06-05
  • 1970-01-01
  • 2023-03-28
  • 2021-11-05
相关资源
最近更新 更多