Sas*_*ota 6 java junit mockito powermock junit5
我有一个看起来像这样的代码:
MyObject getMyObject() {
Instant now = Instant.now();
return myService.doSomething(now);
}
Run Code Online (Sandbox Code Playgroud)
我知道 JUnit 5 不支持 PowerMock,但我想知道至少对于日期等标准 API 是否有一个解决方案。
现在我正在嘲笑不正确的Instant实例Mockito.any(),因为如果我通过了错误,我的测试就不会失败Instant。
您可以将当前 Instant 的创建移至包级别方法:
MyObject getMyObject() {
Instant now = getCurrentInstance();
return myService.doSomething(now);
}
Instant getCurrentInstant(){
Instant.now();
}
Run Code Online (Sandbox Code Playgroud)
然后在测试中您可以监视 SUT 并模拟该getCurrentInstant方法:
Sut sut = spy(new Sut());
doReturn(testInstance).when(sut).getCurrentInstant();
sut.getMyObject();
Run Code Online (Sandbox Code Playgroud)
如果您需要进一步阅读,这是我写的关于Mockito 间谍活动的文章。
| 归档时间: |
|
| 查看次数: |
1697 次 |
| 最近记录: |