我有一個類負責構建用於導出的PPT幻燈片。爲了進行單元測試,我創建了一個接口,以便使用Moq進行模擬;迄今爲止都很棒。然而,當我試圖測試我的方法已被調用時,我遇到了困難。這是一個無效的方法,所以在這一點上,我只想知道該方法已被擊中。驗證是否使用Moq調用了無效方法
這裏是我的接口:
interface IPowerpointExporter
{
void AddSlides(int amount);
void setTitle(string title);
}
這是我的單元測試:
[TestMethod]
public void testPPTObject()
{
var mockPPT = new Mock<IPowerpointExporter>();
mockPPT.Setup(m => m.AddSlides(1)).Verifiable();
mockPPT.Object.AddSlides(1);
mockPPT.VerifyAll();
}
然而,當我來電話AddSlides()
我得到一個GeneratorException
。對此的解釋是我的IPowerpointExporter無法訪問。我有一種感覺,這是因爲我試圖在界面上調用一個方法,儘管我不確定,因爲此時我的對象在mockPPT.Object.AddSlides();
。
請注意,我也嘗試嘗試使用實際的對象而不是Interface.Object。這也給出了同樣的異常:
[TestMethod]
public void testPPTObject()
{
var mockPPT = new Mock<IPowerpointExporter>();
mockPPT.Setup(m => m.AddSlides(1)).Verifiable();
ExportPowerPoint temp = (ExportPowerPoint)mockPPT.Object;
temp.AddSlides(1);
mockPPT.VerifyAll();
}
使用起訂量我怎麼能確認我的方法被調用?我正在做的是正確的路線嗎?
看來你正在測試你的模擬。您應該使用IPowerpointExporter測試代碼,並在那裏驗證(模擬)接口上的方法被稱爲 – andreasnico