Mockito verify可以断言与模拟对象上的方法发生一定数量的交互.
// Given
SomeService someService = mock(SomeService.class);
// When
someService.prepare();
someService.prepare();
// Then
verify(someService, times(2)).prepare(); // test passes
Run Code Online (Sandbox Code Playgroud)
有时在单元测试中知道模拟对象上的方法调用总数没有改变是有用的.
这在添加新方法调用时提供可见性(即失败的测试).
Mockito提供此功能吗?
在某些情况下,我想打电话:
verify(someService, times(2));
Run Code Online (Sandbox Code Playgroud)
..没有得到UnfinishedVerificationException:
org.mockito.exceptions.misusing.UnfinishedVerificationException:
Missing method call for verify(mock)...
Example of correct verification:
verify(mock).doSomething()
Run Code Online (Sandbox Code Playgroud) 假设我在 Docker 中部署了一个 Java Web 应用程序,其中有几个组件在容器内生成日志:
STDOUT和STDERRserver.loggc.log应用程序日志被路由到Splunk,但是我们应该如何检索其他组件的日志呢?
看来至少有两个选择:
STDOUT. 这并不理想,因为这会混合日志并产生更难以分离的输出,因为不同的组件会产生不同格式的日志。server.log对主进程以外的每个进程使用 sidecar 容器,并让这些 sidecar 从 eg和检索日志gc.log,并将它们通过管道传输到STDOUT。更好,但这会对磁盘使用产生重大影响。有更好的解决方案吗?