如何通过改造电话对课程进行单元测试?

时间:2019-03-28 15:47:06

标签: android unit-testing callback retrofit

我想在Android应用程序中为此LoginHandler类创建单元测试:

public class LoginHandlerImpl{
 int test=0;
 public void tryLogin(String username, String password) {

        LoginDataSchema loginData = new LoginDataSchema();
        loginData.setUsername(username);
        loginData.setPassword(password);

       serviceAPI mApi = ApplicationCompositionRoot.getIstance().getserviceAPI();


        mApi.tryLogin(loginData).enqueue( new Callback<LoginResponseSchema>() {

            @Override
            public void onResponse(Call<LoginResponseSchema> call, Response<LoginResponseSchema> response) {
                if (response.isSuccessful()) {
                    int errorCode = response.body().getErrorCode();
                    if (errorCode == LoginResponseSchema.LOGIN_SUCCESS) {
                        test=1;
                    }
                    else
                    {
                        test=2;
                    }
                } else {
                    test=3;
                }

            }

            @Override
            public void onFailure(Call<LoginResponseSchema> call, Throwable t) {
                    test=3;
            }


        });
    }
}

我使用Postman Mock服务器进行测试,并重写了RetrofitApi网址以调用模拟服务器。 我确实测试了它们,它们应该是正确的,但是当我尝试该测试时:

public class LoginHandlerTest {
@Test
    public void tryloginTest(){

        LoginHandlerImpl loginHandler=new LoginHandlerImpl();
        loginHandler.tryLogin("test","test");
        assertEquals(1,loginHandler.test);
    }

}

不运行Callback,loginHandler.test保持为0。 我在互联网上搜索,但找不到任何东西。

0 个答案:

没有答案