如何在 VS 2019 的 .Net core MS Test 中编写测试驱动开发?
How to write Test Driven Development in .Net core MS Test in VS 2019?
我们一直在 .Net core 3.1 中开发 REST API,并在 Visual Studio 2019 年使用 MS TEST - Test Project 进行单元测试。
现在我们有一个硬性规定要遵循测试驱动开发。理论上我可以理解 TDD 将涉及编写测试来实现需求并不断迭代 RED GREEN 和 REFACTOR 周期。
现在我的问题是,如果我有一个端点根据作者 ID 从 DB 获取所有书籍,就像下面的端点
httpget : api/boooks/authors/1006
这将return一个响应,我应该在MSTest项目的测试class中写什么所有案例/测试方法,这样我就可以说,我有遵循测试驱动开发 ?
在 TDD 之前,我将为服务方法编写一个 TestMethod,它将调用数据库层并从 SQL 数据库中获取作者信息。因此,将只编写 1 个具有不同输入模拟的测试方法。
我是 TDD 的新手,因此提出了这个问题。任何评论都有帮助
如果您对需要编写多少测试用例有疑问,您可以考虑使用the Devil's Advocate technique来评论您的测试代码。
例如,如果您编写单个单元测试(伪代码):
Initialise System Under Test (SUT)
Call api/boooks/authors/1006
Assert that the response is, say, [Foo, Bar]
那么,根据the red-green-refactor checklist和魔鬼代言人的技术,实施应该是最简单的事情。那会是什么?
return [Foo, Bar];
无条件返回 hard-coded 值不是您想要的实现。这意味着您 至少 还要编写一个测试用例。
另一个要记住的启发式是 there should be at least as many test cases as the cyclomatic complexity 的实施,而且很可能更多。
我们一直在 .Net core 3.1 中开发 REST API,并在 Visual Studio 2019 年使用 MS TEST - Test Project 进行单元测试。
现在我们有一个硬性规定要遵循测试驱动开发。理论上我可以理解 TDD 将涉及编写测试来实现需求并不断迭代 RED GREEN 和 REFACTOR 周期。
现在我的问题是,如果我有一个端点根据作者 ID 从 DB 获取所有书籍,就像下面的端点
httpget : api/boooks/authors/1006
这将return一个响应,我应该在MSTest项目的测试class中写什么所有案例/测试方法,这样我就可以说,我有遵循测试驱动开发 ?
在 TDD 之前,我将为服务方法编写一个 TestMethod,它将调用数据库层并从 SQL 数据库中获取作者信息。因此,将只编写 1 个具有不同输入模拟的测试方法。
我是 TDD 的新手,因此提出了这个问题。任何评论都有帮助
如果您对需要编写多少测试用例有疑问,您可以考虑使用the Devil's Advocate technique来评论您的测试代码。
例如,如果您编写单个单元测试(伪代码):
Initialise System Under Test (SUT)
Call api/boooks/authors/1006
Assert that the response is, say, [Foo, Bar]
那么,根据the red-green-refactor checklist和魔鬼代言人的技术,实施应该是最简单的事情。那会是什么?
return [Foo, Bar];
无条件返回 hard-coded 值不是您想要的实现。这意味着您 至少 还要编写一个测试用例。
另一个要记住的启发式是 there should be at least as many test cases as the cyclomatic complexity 的实施,而且很可能更多。