我正在尝试编写一个需要确认是否调用方法的单元测试。我正在使用 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”);
我想做的事是不可能的吗?还是我只是走错路了?
谢谢大家 :)