我有一个单元测试班:
[TestFixture]
public class SomeClassIntegrationTests : SomeClass
使用公共构造函数:
public SomeClassIntegrationTests (ILogger l) : base(l)
{
}
当我尝试运行测试时,出现“找不到合适的构造函数”错误。
我尝试将TestFixture
属性更改为[TestFixture(typeof(ILogger))]
,但导致出现相同的错误消息,不允许我运行或调试测试。
是否知道如何修改TestFixture
属性以使测试以其他方式运行或解决此问题?
答案 0 :(得分:1)
您可能需要一个实现ILogger的类的实例。
选项1:使用null(如果确实不需要记录器):
[TestFixture(null)]
选项2:始终使用相同的具体类(或模拟):添加无参数构造函数
SomeClassIntegrationTests()
: this(new MyLogger())
{
}
和
[TestFixture]
选项3:您可能希望使用其他记录器进行测试
SomeClassIntegrationTests(Type t)
: this((Ilogger)Activator.CreateInstance(t))
{
}
和
[TestFixture(typeof(MyLogger))]