假设我有两种搜索算法的实现,它们为同一输入返回相同的结果.它们都实现了相同的接口.
我如何使用单个[TestClass]
来测试两个实现,而不是创建两个最终具有相同逻辑的测试文件?
我可以告诉MSUnit使用不同的构造函数参数两次启动其中一个测试吗?
也许我应该(n)以某种方式注入它?
tal*_*eth 12
使用抽象测试类:
[TestClass]
public abstract class SearchTests
{
private ISearcher _searcherUnderTest;
[TestSetup]
public void Setup()
{
_searcherUnderTest = CreateSearcher();
}
protected abstract ISearcher CreateSearcher();
[TestMethod]
public void Test1(){/*do stuff to _searcherUnderTest*/ }
// more tests...
[TestClass]
public class CoolSearcherTests : SearcherTests
{
protected override ISearcher CreateSearcher()
{
return new CoolSearcher();
}
}
[TestClass]
public class LameSearcherTests : SearcherTests
{
protected override ISearcher CreateSearcher()
{
return new LameSearcher();
}
}
}
Run Code Online (Sandbox Code Playgroud)