Java 如何验证使用带有特定字段的参数调用了mock';价值观
我用mockitomock写了一个UT 我想验证是否使用以下参数调用了mock:Java 如何验证使用带有特定字段的参数调用了mock';价值观,java,unit-testing,mocking,mockito,Java,Unit Testing,Mocking,Mockito,我用mockitomock写了一个UT 我想验证是否使用以下参数调用了mock:MyObject obj其中obj={name=…,value=9} 我想验证是否使用值为9的param调用了mock 你会怎么做 我不想在myObject中重写equals(..),mockito有ArgumentMatcher接口: class IsListOfTwoElements extends ArgumentMatcher<List> { public boolean matche
MyObject obj
其中obj={name=…,value=9}
我想验证是否使用值为9的param调用了mock
你会怎么做
我不想在
myObject
中重写equals(..)
,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);
类IsListOfTwoElements扩展ArgumentMatcher{
公共布尔匹配(对象列表){
返回((列表)列表).size()=2;
}
}
List mock=mock(List.class);
when(mock.addAll(argThat(new IsListOfTwoElements()))。然后返回(true);
这是一个内置的匹配器:hasProperty
assertThat(externalPois, Matchers.hasItem(Matchers.<ExternalPoi>hasProperty("id", is(5))));
assertThat(externalPois,Matchers.hasItem(Matchers.hasProperty(“id”,is(5)));