TDD时提取类.如何测试新提取的类?

dev*_*ium 4 c# java tdd unit-testing

所以我在我的主类中有几个方法使用矩阵来设置或关闭像素.我已经运行了所有当前的测试,所以,我已经决定已经抽出一些与矩阵相关的逻辑,并创建一个Matrix类.

我的问题是,除了我目前为我的SUT课程进行的测试(我刚刚开始,所以我目前只有一个课程,SUT的主要课程),我应该为它创建单元测试吗?如果是这样,你怎么做?我的意思是,我现在是否让我所有的代码都是现在的,创建make单元测试逐一进行测试第一种方法,直到我看到我拥有所有功能上我想要的只有那里我重构我的代码?我只是直接创建Matrix类,只是确保旧测试仍然通过,一切都好吗?

谢谢

Yis*_*hai 8

基本上是后者.没有必要仅仅因为它被定义为一个独特的类来测试一个类.如果您在不添加任何功能或以其他方式更改行为的情况下进行重构,则添加测试的唯一原因是您对代码的某个部分缺乏信心.否则,代码已经在测试中,并且它通过另一个类进行测试的事实应该无关紧要.

话虽如此,有时候代码的结构发生了很大的变化,以至于出于组织目的,你想要移动测试,这样你就能分辨出这段代码的实际测试位置.但这是一个不同的问题,说"这是一个独立的单位,所以它必须有独立的测试."


Car*_*ter 7

一个相对常见的提示,是时候发布一个类是你有你想要测试的私有方法.在那种情况下,让测试真正推动重构.在(尚未写入)类中编写(当前私有)方法的测试; 将新类的实例提供给现有类,并将私有方法移动到新类中,使其随时公开.

  • 这件事刚刚发生在我身上。当我读过你的帖子时,我立即知道该怎么做:P (2认同)