我正在尝试编写一个需要确认是否调用方法的单元测试。我正在使用 JUnit、Mockito 和 PowerMock。
公共类发票
{
受保护的无效 createInvoice()
{
// 这里随机的东西
markInvoiceAsBilled("57");
}
protected void markInvoiceAsBilled(字符串代码)
{
// 标记为已收费
}
}
所以,这里我的测试系统是Invoice. 我正在运行这个测试:
公共类 InvoiceTest
{
@测试
公共无效 testInvoiceMarkedAsBilled()
{
发票 sut = new Invoice();
发票 sutSpy = spy(sut);
sut.createInvoice();
// 我想验证是否调用了 markInvoiceAsBilled()
}
}
这个例子只是实际代码的一个例子......
我的问题是,mockito 说你只能验证是否在模拟对象上调用了一个方法......但我不想模拟这个对象,因为它是我正在测试的对象。我知道你可以监视你正在测试的对象,所以这就是我尝试的:
验证(sutSpy).markInvoiceAsBilled(“57”);
我想做的事是不可能的吗?还是我只是走错路了?
谢谢大家 :)