【发布时间】:2015-06-16 13:04:55
【问题描述】:
如何解决您尝试定义的 TestFixture 需要引用没有无参数构造函数的类型的情况?
我正在尝试测试具有多个实现的接口。从 NUnit 文档中,它展示了如何使用这样的泛型进行设置(我可以在其中定义多种实现类型):
[TestFixture(typeof(Impl1MyInterface))]
[TestFixture(typeof(Impl2MyInterface))]
[TestFixture(typeof(Impl3MyInterface))]
public class TesterOfIMyInterface<T> where T : IMyInterface, new() {
public IMyInterface _impl;
[SetUp]
public void CreateIMyInterfaceImpl() {
_impl = new T();
}
}
出现问题是因为 Impl1MyInterface、Impl2MyInterface 等没有无参数构造函数,因此当 NUnit 尝试发现可用的测试用例时,我收到此错误(并且测试未显示在 VS 中):
Exception System.ArgumentException,发现测试时抛出的异常 在 XYZ.dll 中
有没有办法解决这个问题?定义无参数构造函数没有意义,因为我的代码需要这些值才能工作。
【问题讨论】:
标签: c# unit-testing nunit