【发布时间】:2015-02-25 19:27:11
【问题描述】:
我正在处理一个包含数千个集成测试的大型测试项目。 有很多代码重复,有点混乱。大多数测试由几个步骤组成,并创建了许多“虚拟”对象。对于 dummy,我的意思是这样的:
new Address {
Name = "fake address",
Email = "some@email.com",
... and so on
}
数据是什么通常并不重要。这种代码在测试、测试基类和帮助程序中展开和复制。
我想要的是有一个单一的“测试数据构建器”,有一个单一的职责,生成测试使用的测试数据。
一种方法是创建一个包含一堆静态方法的类,如下所示:
Something CreateSomething(){
return new Something {
// set default dummy values
}
还有一个重载:
Something CreateSomething(params){
return new Something {
// create the Something from the params
}
另一种方法是让 xml 文件包含数据,但我担心它离测试太远了。
我们的目标是将这种代码从测试中移出,因为现在测试很大且不可读。典型情况下,50行测试代码中,有20-30行是这种代码。
有什么模式可以做到这一点吗?或者有什么大型开源代码库的例子,我可以看看?
【问题讨论】:
标签: c# integration-testing readability