【发布时间】:2014-10-13 07:56:32
【问题描述】:
我使用 mockito mock 编写了一个 UT。
我想验证是否使用此参数调用了模拟:MyObject obj where obj = { name =... , value = 9}
我想验证模拟是用值为 9 的参数调用的。
你会怎么做?
我不想在myObject 中覆盖equals(..)
【问题讨论】:
标签: java unit-testing mocking mockito
我使用 mockito mock 编写了一个 UT。
我想验证是否使用此参数调用了模拟:MyObject obj where obj = { name =... , value = 9}
我想验证模拟是用值为 9 的参数调用的。
你会怎么做?
我不想在myObject 中覆盖equals(..)
【问题讨论】:
标签: java unit-testing mocking mockito
mockito 有 ArgumentMatcher 接口:
class IsListOfTwoElements extends ArgumentMatcher<List> {
public boolean matches(Object list) {
return ((List) list).size() == 2;
}
}
List mock = mock(List.class);
when(mock.addAll(argThat(new IsListOfTwoElements()))).thenReturn(true);
【讨论】:
这是一个内置的匹配器:hasProperty
assertThat(externalPois, Matchers.hasItem(Matchers.<ExternalPoi>hasProperty("id", is(5))));
【讨论】: