我有一个类负责构建用于导出的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