以下是我在项目中使用的工具和框架。
我还在我的项目中实现了MVP设计模式。
我只是想知道我是否需要使用真正的后端或者只是需要 模拟后端以进行测试。如果我需要嘲笑后端是什么 重新开始工具
swagger提供任何模拟Web服务的工具
主要是单元测试android(MVP)的最佳实践是什么? 演示
我在这里发帖是因为我没有在网上找到所有这些问题的正确答案
我为演示者编写了一个示例测试用例,如果我做错了请告诉我
演示
public void doLogin(String userName, String password) {
loginView.showProgressBar(true);
AuthenticationcontrollerApi authService = mDataClient.createService(AuthenticationcontrollerApi.class);
UserCredentials userCredentials = new UserCredentials();
userCredentials.setUserName(userName);
userCredentials.setPassword(password);
authService.authorizeUsingPOST(userCredentials, new Callback<String>() {
@Override
public void success(String s, Response response) {
loginView.showProgressBar(false);
loginView.onLoginSuccess(true, s);
}
@Override
public void failure(RetrofitError error) {
loginView.showProgressBar(false);
loginView.onLoginFailure(error);
}
});
}
测试
@RunWith(MockitoJUnitRunner.class)
public class LoginPresenterTest {
@Mock
protected AuthenticationcontrollerApi authService;
@Mock
protected DataClient mDataClient;
@Mock
LoginView loginView;
private LoginPresenter loginPresenter;
@Before
public void setUp() {
loginPresenter = new LoginPresenter(mDataClient);
loginPresenter.attachView(loginView);
when(mDataClient.createService(AuthenticationcontrollerApi.class)).thenReturn(authService);
}
@Test
public void loginSuccessful() {
String a = "";
loginPresenter.doLogin("abc", "abc");
verify(loginView).showProgressBar(true);
}
@After
public void detachView() {
loginPresenter.detachView();
}
}
提前致谢
答案 0 :(得分:2)
单元测试应测试“单元”。这意味着所有依赖项应该由您明确控制(例如模拟)。
有集成测试可以测试不同部分的集成行为,但这是一个不同的主题。
让我们回答你的问题:
我只是想知道我是否需要使用真正的后端或者只是需要 模拟后端以进行测试。如果我需要嘲笑后端 什么是重新开始的工具
您不需要正在测试单元的真实后端。您不希望您的测试受到后端错误的影响。
Mockito是推荐的工具。你只是模仿行为(你在样本测试中开始做什么)。
swagger提供任何模拟Web服务的工具
除了Mockito,我认为你不需要任何特别的东西。
单元测试android(MVP)主要是演示者
的最佳实践是什么?
在演示者中,您可以模拟视图和数据源(在您的情况下是Web服务)并编写测试,为您的测试场景提供模拟数据。通过这种方式,您可以测试演示者的业务逻辑,而不是Web服务。