【问题标题】:How can test MutableLiveData<>.observe when the data is changed?数据发生变化时如何测试 MutableLiveData<>.observe?
【发布时间】:2019-09-13 18:48:24
【问题描述】:

我有下一个代码用于测试 API 是否与登录功能一起使用:

@RunWith(RobolectricTestRunner.class)
public class LoginTest {
    LoginRespository profileRepository = new LoginRespository(RuntimeEnvironment.application);

    @Test
    public void testLogin() {
        MutableLiveData<ApiResponse<LoginData>> data = new MutableLiveData<>();
        String email = "email@email.com";
        String password = "email@email.com";
        profileRepository.login(data, email, password);

    }
}

API返回的数据保存到data,但是我不知道怎么把观察者放在这里,因为我需要上下文,也许testLogin,没有完成。

有什么想法吗?

谢谢

【问题讨论】:

    标签: android junit android-testing robolectric android-mvvm


    【解决方案1】:

    最后,我可以用 robolectric 用下一个代码进行测试:

    @RunWith(RobolectricTestRunner.class)
    public class DownloadProfileTest {
        LoginRespository profileRepository = new LoginRespository(RuntimeEnvironment.application);
        private ActivityController<LoginActivity> controller;
        private LoginActivity activity;
    
        private void createLoginActivityWithIntent() {
            activity = controller
                    .create()
                    .start()
                    .get();
        }
    
        @Before
        public void setUp() {
            controller = Robolectric.buildActivity(LoginActivity.class);
        }
    
        @Test
        public void testUtilsIsValidEmail() {
            MutableLiveData<ApiResponse<LoginData>> data = new MutableLiveData<>();
            String email = "email@email.com";
            String password = "email@email.com";
            profileRepository.login(data, email, password);
            createLoginActivityWithIntent();
    
            data.observe(activity, (@Nullable ApiResponse<LoginData> loginResponse) -> {
                assertTrue(loginResponse != null);
            });
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多