sr1*_*123 2 java testing mocking mockito powermockito
请,
我正在测试使用 LocalDateTime.now() 的功能 ABC。
在 ABC 方法中,我将输入日期与 LocalDateTime.now() 进行比较
我希望我的测试能够在任何一天通过,所以我必须模拟 LocalDateTime.now()
这是我的测试:
public void testClass() {
LocalDateTime mock = Mockito.mock(LocalDateTime.class);
Mockito.doReturn(LocalDateTime.of(2030,01,01,22,22,22)).when(mock).now();
log.info(String.valueOf(LocalDateTime.now()));
myService.ABC();
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 JAVA 8
控制台中显示的日期始终是真正的 LacalDateTime 而不是我想要的 LacalDateTime (2030-01-01) 。
我没有收到错误。
有什么帮助吗?
您应该用于Mockito#mockStatic此用例。
你可以这样使用它
try(MockedStatic<LocalDateTime> mock = Mockito.mockStatic(LocalDateTime.class, Mockito.CALLS_REAL_METHODS)) {
doReturn(LocalDateTime.of(2030,01,01,22,22,22)).when(mock).now();
// Put the execution of the test inside of the try, otherwise it won't work
}
Run Code Online (Sandbox Code Playgroud)
请注意,它的用法Mockito.CALLS_REAL_METHODS将保证每当LocalDateTime使用另一个方法调用时,它将执行该类的真正方法。
| 归档时间: |
|
| 查看次数: |
11357 次 |
| 最近记录: |