【发布时间】:2016-06-24 05:13:02
【问题描述】:
我想测试(使用NUnit)以下类,特别是protected方法ProtectedMethod。
public class Foo
{
protected bool ProtectedMethod()
{
//...
}
}
为了访问受保护的方法,我编写了一个继承自Foo的测试类:
[TestFixture]
internal class FooTestable : Foo
{
[Test]
public void ProtectedMethod_Test()
{
bool result = ProtectedMethod();
Assert.That(result);
}
}
但我收到以下错误:
FooTestable does not have a default constructor
什么意思?
这是测试受保护方法的最佳方式吗?
【问题讨论】:
-
该错误通常意味着类没有不带参数的构造函数。 FooTestable 是否有一个带参数的构造函数?如果是这样,您需要将其更改为 FooTestable() : base("a", "b") 为基类构造提供默认值。
标签: c# exception inheritance nunit protected