我想用几个非常基本的私有(private)(非静态)方法测试这个类,但是......我似乎无法让它工作。
下面的代码一直给我以下异常:
System.MissingMethodException: Method 'GeneratorStandard.GetNumber' not found.
测试看起来像这样:
[TestMethod]
public void GetNumber01()
{
var list = GetList();
var generator = new GeneratorStandard();
var privateObject = new PrivateObject(generator, new PrivateType(typeof(Generator)));
int result = (int)privateObject.Invoke("GetNumber", list);
Assert.AreEqual(2, result);
}
Generator是包含方法的抽象基类,GeneratorStandard是继承Generator的实现类。
我也尝试过在 VS2010 中使用“创建私有(private)访问器”按钮,但是它只创建了一个测试引用文件,而不是一个实际的影子类……所以这不起作用。
请帮忙:)
最佳答案
如果来自抽象“基”类的方法必须可以通过从抽象类继承的类型访问,它们应该(至少)标记为protected
,而不是private
。
public abstract class MyClassBase {
private void DoThis(){}
protected void DoThat(){}
}
public class MyImplemntation : MyClassBase {
//I don't know DoThis();
//I know DoThat();
}
关于c# - 所有测试私有(private)方法的方法似乎都失败了 (c#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16815430/