class - TDD我应该为测试用例创建一个空类吗?

原文 标签 class unit-testing testing tdd methodology

我是TDD的新手,并且渴望开始使用它,但是只要我正在处理的测试用例需要一个尚不存在的类(作为输入或输出),我都会遇到麻烦。

问题是我不知道是否要创建没有任何功能的类(是否认为这是未经测试的代码?),或者是停止进行测试(绿色),然后开始为这个新的非代码编写测试?现有的班级。

第二种方法似乎是递归的,可能会使我迷失方向,而第一种方法则创建了一个新类,没有测试。

有没有我没有想到的第三种方法,哪个更好?

最佳答案

您可以双向使用。有时,仅创建一个新的辅助类并暂时将其保留为空壳是一个好方法。

但是,TDD的主要好处是可以反馈有关您的代码的信息,因此,如果您经常遇到这种情况,则应该停下来考虑一下这将告诉您API的设计。

尽管如此,这没有内在的错误,因为它还取决于您的整体方法。如果您正在执行Outside-In TDD,那么这往往会发生很多,因为您是从抽象级别开始并逐步降低的(而恋人级别的类尚不存在)。

另一方面,如果您进行自下而上的TDD,则不应经常发生这种情况,因为您从构建模块开始,然后从这些构建模块组成更高级别的类。

在任何情况下,“递归”方法都是使用Git的一种示例,因为每次您遇到需要在当前编写的测试之前编写另一项测试的情况,就可以使用

git stash


然后编写新的测试。完成新测试后,您可以进行

git stash pop


返回原始测试。您可以递归执行此操作,因此可以帮助您跟踪自己的想法。

相关文章:

node.js - 自动测试的NodeJS代码覆盖率

css - 我应该如何为angularjs中的嵌套对象应用条件类

java - 如何在Java中设置和使用类,库,包?

c++ - C ++访问另一个源文件中的类的指针的矢量

python - 尝试学习python类

r - 如何针对某些特定值对面板数据回归系数执行联合Wald检验?

.net - 使用“朋友”声明进行单元测试。馊主意?

c# - 与Moq一起使用多个索引器

c# - 在单元测试中使用xml转换

java - 一起使用JUnit和TestNG