如果使用xunit
:
public class RepositoryTester {
private IRepository repository;
public RepositoryTester(IRepository repository) {
this.repository = repository;
)
[Fact] // Analogue of [Test] in other test packages.
void CanDoWhatever() {
// Test code
}
}
现在,如果我尝试运行所有单元测试,只要xunit
尝试通过调用RepositoryTester
创建对象new RepositoryTester()
(它调用不带参数的构造函数),它就会失败
我想做的事情可以用这种方式表达:
var tester1 = new RepositoryTester(new SQLRepository(...));
var tester2 = new RepositoryTester(new InMemoryRepository(...));
tester1. RUN_ALL_TESTS();
tester2. RUN_ALL_TESTS();
有人知道是否可能出现以下行为?(我真的希望通过它的界面为每个可测试的存储库使用相同的测试包)。
谢谢
答案 0 :(得分:2)
您可以使RepositoryTester
抽象,并为每种类型的存储库创建一个派生类,该类在无参数构造函数中创建适当的IRepository。将为每个具体的子类运行继承的测试方法。