Điều này có thể được thực hiện nếu bạn đang sử dụng Mockito2, với tính năng ủ mới hỗ trợ chế tạo các lớp & phương thức cuối cùng.
Những điểm chính cần lưu ý:
1. Tạo một tệp đơn giản với tên là org org.mockito.plugins.MockMaker, và đặt nó vào một thư mục có tên là mockito-extend. Thư mục này nên được tạo sẵn trên đường dẫn lớp.
2. Nội dung của tệp được tạo ở trên phải là một dòng như dưới đây:
mock-Maker-inline
Hai bước trên là bắt buộc để kích hoạt cơ chế mở rộng mockito và sử dụng tính năng chọn tham gia này.
Các lớp mẫu như sau: -
FinalClass.java
public final class FinalClass {
public final String hello(){
System.out.println("Final class says Hello!!!");
return "0";
}
}
Foo.java
public class Foo {
public String executeFinal(FinalClass finalClass){
return finalClass.hello();
}
}
FooTest.java
public class FooTest {
@Test
public void testFinalClass(){
// Instantiate the class under test.
Foo foo = new Foo();
// Instantiate the external dependency
FinalClass realFinalClass = new FinalClass();
// Create mock object for the final class.
FinalClass mockedFinalClass = mock(FinalClass.class);
// Provide stub for mocked object.
when(mockedFinalClass.hello()).thenReturn("1");
// assert
assertEquals("0", foo.executeFinal(realFinalClass));
assertEquals("1", foo.executeFinal(mockedFinalClass));
}
}
Hy vọng nó giúp.
Toàn bộ bài viết hiện tại ở đây chế giễu-không thể thay đổi .