受保護的方法我試圖編寫單元測試代碼如下使用Microsoft.Fakes。模擬調用受保護的方法從派生類的公共方法使用Microsoft.fakes
隨着新的和我在嘲笑調用保護的抽象基類功能的方法遇到困難Microsoft.Fakes
我的基類:
public abstract class MyAbstractBaseClass
{
protected virtual int MyFunctionalBaseClassMethod(int parameter1)
{
return (parameter1 * parameter1);
}
}
我的子類:
public class MyChildClass : MyAbstractBaseClass
{
public int GetSquare(int parameter1) //(target method for unit test)
{
return MyFunctionalBaseClassMethod(parameter1); //(target method to mock using Fakes)
}
}
我試過以下單元測試代碼進行嘲弄,但沒有成功:
var square = 10;
var stubMyAbstractBaseClass = new Fakes.StubMyAbstractBase()
{
MyFunctionalBaseClassMethod = (a) => { return square; }
};
說明:我的抽象基類保護方法執行復雜的操作,所以我需要嘲笑它。上面的代碼只是一個示例。
任何指針,將不勝感激!
如果你的目標是GetSquare()爲什麼你不能這樣做變種X = _myChildClass.GetSquare(2);然後你可以Assert.IsEqual(2,x); – Sasha
如上所述 請注意:我的抽象基類保護方法執行復雜的操作,所以我需要嘲笑它。上面的代碼只是一個示例。 – SRS