我想通过使用抽象工厂方法(using this approach)创建抽象测试类来对抽象类进行单元测试,该方法以多态方式获取具体实例。像这样:
public abstract class Base
{
public bool MyMethod()
{
return true;
}
}
public class Derived : Base {}
// Tests
public abstract class BaseTest
{
[Fact]
public void MyMethod_MakeTestFailByAssertingFalseReturn()
{
//Arrange
var instance = GetConcreteInstance();
//Act
bool result = instance.MyMethod();
//Assert
Assert.False(result);
}
protected abstract Base GetConcreteInstance();
}
public class DerivedTest : BaseTest
{
protected override Base GetConcreteInstance()
{
return new Derived();
}
}
到目前为止,这么好。但是ReSharper测试运行器给出了这个错误:
不确定:测试未运行
用于BaseTest类中的所有测试。即使是那些被忽视的人。我尝试使用Visual Studio测试运行器运行测试,但它没有检测到它们中的任何一个。
答案 0 :(得分:0)
您可以查看this。我也遇到了没有找到我的测试的文本浏览器的问题,当我删除你可以在路径找到的临时visualstudioextension目录时,我设法解决问题 - C:/ users / USERNAME / AppData / Local / Temp / VisualStudioTestExplorerExtensions 强>