【问题标题】:Presenter call to rest service testing EasyMock演示者呼叫休息服务测试 EasyMock
【发布时间】:2013-12-19 07:14:44
【问题描述】:

我是 gwt、mvp 和 easymock 的新手。我正在使用 MVP 模式构建一个应用程序,其中演示者正在调用远程 RestService。我想测试使用 EasyMock 调用远程服务的演示者功能。目前,我的代码看起来像

    expect(applicationView.get()).andReturn(5);       
    applicationPresenter.setView(applicationView);

    replay(applicationView);

    MyRestService mService = createNiceMock(MyRestService.class);       
    applicationPresenter.setMyRestService(mService);
    applicationPresenter.fetchAllBooks();
    verify(applicationView);

我运行测试并成功通过测试。我做得对吗?如何测试响应,因为 service 是一个 RestService 接口,它在 MethodCallback 中返回响应。我的服务界面如下:

@Path("/rest-service")
public interface MyRestService extends RestService {
@Path(value="/getAllBooks")
@GET
void getAllBooks(MethodCallback<List<Book>> callback);

请帮助我的演示者和服务器呼叫测试程序是否正确?如何测试响应并将值传递到应用程序视图?我需要传递值来查看还是模拟这些值?

问候,

【问题讨论】:

    标签: gwt junit mvp easymock


    【解决方案1】:

    我对 REST 服务了解不多,但是以 get 开头并返回 void 的 Web 服务对我来说似乎很奇怪。

    除此之外,您需要期待对getAllBooks 的调用,因为您的服务是模拟的。 从外观上看,fetchAllBooks 方法实例化了MethodCallBack,然后将其提供给模拟服务。因此,如果您想对其进行更改,使其在fetchAllBooks 方法继续时处于某种预期状态,您可以使用预期中的andAnswer()

    这样的事情应该可以解决问题:

        MyRestService mService = createNiceMock(MyRestService.class);  
                mService.getAllBooks(EasyMock.isA(MethodCallcack.class));
        EasyMock.expectLastCall().andAnswer(new IAnswer() {
    
            @Override
            public Object answer() throws Throwable {
                final Object[] currentArguments = EasyMock.getCurrentArguments();
                MethodCallback callback = ((MethodCallback)currentArguments[0]);
                //Set whatever you need to on your MethodCallback so that the data makes it back.
    
                return null;
            }
    
        });
    
        //Don't forget to replay
        EasyMock.replay(mService);
    

    关于这种事情here 也有一篇很好的堆栈溢出帖子

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-20
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多