Android MVP测试方法需要网络操作

时间:2017-01-09 11:01:14

标签: android unit-testing junit4 mvp

我正在使用Junit和Mackito测试我的应用程序,测试方法到目前为止还不行,但是不需要使用需要网络操作的方法,如何正确测试它们,以便在从后端获取数据后调用assert ?

2 个答案:

答案 0 :(得分:1)

通常,您应该测试您的应用,而不是服务器端逻辑。所以只是模拟网络调用的方法。

但是,如果您想测试应用程序本身的网络层,我建议这样做有好方法 - WireMock

简单地说它创建了本地运行的webserver,它响应预定义的响应。

答案 1 :(得分:1)

依赖于网络调用的测试方法不是一个好主意。 更好地测试后端,并在客户端模拟它。

无论如何,如果您想在网络调用之后和断言之前等待数据使用:Thread.sleep(Xms)在测试方法中。

@Test
public void testcase() throws InterruptedException {
    // make actions and network call

    // Wait, for example 2 seconds. It depends a lot of connection
    Thread.sleep(2000);

    // Then assert whatever you want
}