Java 如何对服务端点的异步调用进行单元测试

Java 如何对服务端点的异步调用进行单元测试,java,web-services,asynchronous,Java,Web Services,Asynchronous,我使用的应用程序对第三方web服务端点进行异步调用,但从未收到响应。异步调用将一些参数传递给端点 实际进行异步调用的方法将对象作为参数传递,如果对象无效,则返回错误代码。但是方法本身内的异步调用不会返回。无法在此发布代码,但以下是伪代码: public String makeAsyncCall(Object obj1, Object obj2, Object obj3) { if(isValid(obj1)) //call to external util method to check

我使用的应用程序对第三方web服务端点进行异步调用,但从未收到响应。异步调用将一些参数传递给端点

实际进行异步调用的方法将对象作为参数传递,如果对象无效,则返回错误代码。但是方法本身内的异步调用不会返回。无法在此发布代码,但以下是伪代码:

public String makeAsyncCall(Object obj1, Object obj2, Object obj3)
{
    if(isValid(obj1)) //call to external util method to checks if fields are notnull or notempty
    {
        getValueFromObj1(obj1) //call to private method to get a value and process the value
    }
    else
    {
        return errorcode;
    }           
    ..... //other objects are validated

    makeAsyncCall(Object obj1, Object obj2, Object obj3); //returns void
}

我将如何对这种方法进行单元测试

您可以使用的编写一个简单的异步同步适配器

FutureTask回调;//任务应该从接收异步回复的线程运行
...
调用WebSeericeMethodAsync并调用argwhendone(回调);
X值=callback.get(5,TimeUnit.SECONDS);

使用模拟怎么样?
FutureTask<X> callback; // task should be run from the thread receiving async replies
...
invokeWebSericeMethodAsyncAndCallTheArgWhenDone(callback);
X value = callback.get(5, TimeUnit.SECONDS);