所以我的主类中有几个方法使用矩阵来设置像素打开或关闭。我的所有当前测试都在运行,因此我决定是时候提取与矩阵等相关的一些逻辑并创建一个 Matrix 类了。
我的问题是,除了我目前对我的 SUT 类进行的测试(我刚刚开始,所以我目前只有一个类,SUT 的主要类),我是否应该为它创建单元测试?如果是这样,你是怎么做到的?我的意思是,我是否让我所有的代码保持原样,通过测试优先的方法一个一个地创建单元测试,直到我看到我拥有我想要的所有功能并且只有在那里我重构我的代码?我直接创建 Matrix 类并确保旧测试仍然通过并且一切正常?
谢谢
最佳答案
基本上是后者。没有必要仅仅因为一个类被定义为一个不同的类就对其进行测试。如果您在不添加任何功能或以其他方式改变行为的情况下进行重构,那么添加测试的唯一原因是您对代码的某个部分缺乏信心。否则,代码已经在测试中,它是通过另一个类测试的事实应该无关紧要。
话虽这么说,但有时代码的结构发生了很大变化,以至于出于组织目的,您想要移动测试,这样您就可以知道这段代码实际上是从哪里进行测试的。但这与说“这是一个独立的单元,所以它必须有独立的测试”是不同的问题。
关于c# - TDD'ing 时提取类。如何测试新提取的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3402177/