Unit testing 如何使用mockito模拟匿名回调中的参数?

Unit testing 如何使用mockito模拟匿名回调中的参数?,unit-testing,callback,mockito,junit4,Unit Testing,Callback,Mockito,Junit4,我想在下面用Mockito对我的代码进行单元测试,有人能告诉我如何模拟回调的响应吗?回调在我的代码中是匿名的?特别是,如何验证是否使用模拟响应调用了doSomethingOnResponse() public void runTask() { Data data = null; ClassA objA = new ClassA(new Callback() { @Override public void onResponse(Response

我想在下面用Mockito对我的代码进行单元测试,有人能告诉我如何模拟回调的响应吗?回调在我的代码中是匿名的?特别是,如何验证是否使用模拟响应调用了doSomethingOnResponse()

public void runTask() {
    Data data = null;

    ClassA objA = new ClassA(new Callback() {
         @Override
         public void onResponse(Response response) {
            data = getSomethingFromResponse(response);
         }
    };

    //this is a synchronous call     
    objA.run();

    doSomethingElse(data); //data gets assigned from the callback
}

提前多谢

您的用例匹配吗?您将回调作为构造函数参数而不是方法参数传递,但答案是相同的——使用ArgumentCaptor或答案。是的,由于设计限制,我必须将回调传递给构造函数,因此如果我模仿您提到的用例,我怎么做方法调用的when部分呢?我不太理解你的问题。在哪里调用了
onResponse
?在示例代码中,根本不使用
response
参数-这是故意的吗?也许一个真实的(可编译的)示例会有所帮助。对不起,我刚刚错过了doSomethingOnResponse(响应)中的“响应”,它确实被使用了,这正是我试图验证的。有人能给我一个示例吗?谢谢