我正在尝试检查我的 API 是否在单元测试中可用,以确保它能够响应 200。
现在,我的问题是我不确定何时使用“本地测试”和何时使用“Android 仪器测试”。我知道必须使用仪器测试进行 UI 测试,但如何测试端点呢?
我使用 Retrofit2 进行通信,并尝试通过本地测试的两种方式来测试端点。
例如1(同步,不起作用):
现在,我的问题是我不确定何时使用“本地测试”和何时使用“Android 仪器测试”。我知道必须使用仪器测试进行 UI 测试,但如何测试端点呢?
我使用 Retrofit2 进行通信,并尝试通过本地测试的两种方式来测试端点。
例如1(同步,不起作用):
public class EndpointTest {
EndpointApi api;
SimpleInjection simpleInjection;
@Before
public void setUp() {
simpleInjection = new SimpleInjection();
api = simpleInjection.getEndpointApi();
}
@Test
public void endpoint_1_isAvailable() {
Call<ApiResponse> rootCall = api.getRoot();
try {
int reponseCode = rootCall.execute().code();
Assert.assertEquals(200, reponseCode);
} catch (IOException e) {
Assert.fail();
}
}
}
示例2(异步,可工作)
public class EndpointTest {
EndpointApi api;
SimpleInjection simpleInjection;
@Before
public void setUp() {
simpleInjection = new SimpleInjection();
api = simpleInjection.getEndpointApi();
}
@Test
public void endpoint_2_isAvailable() {
Call<ApiResponse> rootCall = api.getRoot();
rootCall.enqueue(new Callback<ApiResponse>() {
@Override
public void onResponse(Call<ApiResponse> call, Response<ApiResponse> response) {
Assert.assertEquals(200, response.code());
}
@Override
public void onFailure(Call<ApiResponse> call, Throwable t) {
Assert.fail();
}
});
}
}
我需要使用Android Instrumentation Test来进行异步模式测试吗?