Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用lambda验证模拟方法调用?_Java_Unit Testing_Mocking_Mockito - Fatal编程技术网

Java 用lambda验证模拟方法调用?

Java 用lambda验证模拟方法调用?,java,unit-testing,mocking,mockito,Java,Unit Testing,Mocking,Mockito,使用Mockito,我想通过lambda验证mocked方法调用(特别是传递给它的参数),而不必使用Captor等 虚构 类神话{ 公开募捐{ //…做事 doSomething(someInt,someString); } 公开无效的内容(我的其他内容){ //…做更多的事情 } } 神话测试 @测试 公共无效确保做某事做某事{ MyThing thing=mock(MyThing.class); doCallRealMethod().when(thing.run(); 运行(); doSo

使用Mockito,我想通过lambda验证mocked方法调用(特别是传递给它的参数),而不必使用
Captor

虚构

类神话{
公开募捐{
//…做事
doSomething(someInt,someString);
}
公开无效的内容(我的其他内容){
//…做更多的事情
}
}
神话测试

@测试
公共无效确保做某事做某事{
MyThing thing=mock(MyThing.class);
doCallRealMethod().when(thing.run();
运行();
doSomething(any(),any())。验证(otherThing->{
assertEquals(1,otherThing.getCount());
assertEquals(“abc”,otherThing.getName());
});
}
上述测试正在拦截对
doSomething
的调用,并验证传入的参数。请注意,这需要适用于具有
void
返回的方法


我可能会使用
doAnswer
,但这似乎是一种黑客行为,而不是它的本意。

不需要任何lambda:
验证(东西)。doSomething(1,“abc”)
。抱歉,将更新问题,但参数不是值类型,而是某些类的实例。我需要验证传递的参数的属性。然后使用匹配器:.
argThat
工作。贴出答案,我会接受。不需要任何lambda:
验证(东西)。doSomething(1,“abc”)
。抱歉,将更新问题,但参数不是值类型,而是某些类的实例。我需要验证传递的参数的属性。然后使用匹配器:.
argThat
工作。贴出答案,我会接受的。