小编ale*_*all的帖子

Mockito可以验证模拟对象上方法调用的总数吗?

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)

java unit-testing mockito

5
推荐指数
1
解决办法
2587
查看次数

如何从单个 Docker 容器捕获多个日志流?

假设我在 Docker 中部署了一个 Java Web 应用程序,其中有几个组件在容器内生成日志:

  • Web 应用程序本身,登录到STDOUTSTDERR
  • 应用程序服务器,登录到server.log
  • JVM,将 GC 事件记录到gc.log
  • 其他,例如底层Linux操作系统

应用程序日志被路由到Splunk,但是我们应该如何检索其他组件的日志呢?

看来至少有两个选择:

  • 将所有内容记录到STDOUT. 这并不理想,因为这会混合日志并产生更难以分离的输出,因为不同的组件会产生不同格式的日志。
  • server.log对主进程以外的每个进程使用 sidecar 容器,并让这些 sidecar 从 eg和检索日志gc.log,并将它们通过管道传输到STDOUT。更好,但这会对磁盘使用产生重大影响。

有更好的解决方案吗?

java logging docker

4
推荐指数
1
解决办法
2273
查看次数

标签 统计

java ×2

docker ×1

logging ×1

mockito ×1

unit-testing ×1