【发布时间】:2019-08-21 10:53:37
【问题描述】:
我正在为没有任何自动化测试的遗留应用程序编写单元测试。在写作时,我意识到如果不重构,单元测试会变得非常大。所以如果没有重构,我需要很多函数来保持我的测试可读。 可以在测试中使用“排列”或“设置”方法来保持它们的可读性吗?或者是我的测试复杂。这是一些伪代码。
[TestMethod]
public TestFoo()
{
Obj1 obj1;
Obj2 obj2;
...
//arrange
SetupObjects(obj1, obj2);
//act
Foo.foo( ojb1, obj2);
//assert
AssertObjectStates( obj1, obj2);
}
SetupObjects(Obj1 obj1, Obj2 obj2)
{
CreateAndDoSomethingWithObj1(obj1);
MockSomethingInObj2(obj2);
}
...
【问题讨论】:
-
您的示例和上下文不是很清楚,但
setup方法在单元测试中当然很常见。测试代码就是代码,所以应该重构,去掉重复。
标签: unit-testing tdd legacy