Mockito 的 argumentCaptor 示例

新手上路,请多包涵

谁能给我一个例子,展示如何使用 org.mockito.ArgumentCaptor 类,以及它与 mockito 提供的 简单匹配器 有何不同。

我阅读了提供的 mockito 文档,但没有清楚地说明它,没有一个能够清楚地解释它。

原文由 Ujjwal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 862
1 个回答

我同意@fge 所说的,更多。让我们看例子。考虑你有一个方法:

 class A {
    public void foo(OtherClass other) {
        SomeData data = new SomeData("Some inner data");
        other.doSomething(data);
    }
}

现在,如果你想检查内部数据,你可以使用捕获器:

 // Create a mock of the OtherClass
OtherClass other = mock(OtherClass.class);

// Run the foo method with the mock
new A().foo(other);

// Capture the argument of the doSomething function
ArgumentCaptor<SomeData> captor = ArgumentCaptor.forClass(SomeData.class);
verify(other, times(1)).doSomething(captor.capture());

// Assert the argument
SomeData actual = captor.getValue();
assertEquals("Some inner data", actual.innerData);

原文由 Slava Shpitalny 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题