Tôi đang cố gắng viết một bài kiểm tra đơn vị cần xác nhận nếu phương thức được gọi hay không. Tôi đang sử dụng JUnit, Mockito và PowerMock.Cách xác minh xem phương thức có được gọi là Hệ thống đang được kiểm tra hay không (không phải là mô phỏng)
public class Invoice { protected void createInvoice() { // random stuff here markInvoiceAsBilled("57"); } protected void markInvoiceAsBilled(String code) { // marked as billed } }
Vì vậy, hệ thống của tôi đang thử nghiệm là Invoice
. Tôi đang chạy thử nghiệm này:
public class InvoiceTest { @Test public void testInvoiceMarkedAsBilled() { Invoice sut = new Invoice(); Invoice sutSpy = spy(sut); sut.createInvoice(); // I want to verify that markInvoiceAsBilled() was called } }
Ví dụ này chỉ là một ví dụ về những gì các mã thực tế trông giống như ....
Vấn đề của tôi là Mockito nói rằng bạn chỉ có thể xác minh nếu một phương pháp được gọi là trên một đối tượng giả lập ... nhưng tôi không muốn chế nhạo đối tượng này, vì nó là đối tượng của tôi đang được thử nghiệm. Tôi biết rằng bạn có thể theo dõi đối tượng bạn đang thử nghiệm, vì vậy, đây là những gì tôi đã thử:
verify(sutSpy).markInvoiceAsBilled("57");
Là những gì tôi đang cố gắng không thể? Hay tôi chỉ đi sai đường?
Cảm ơn mọi người :)