Я делаю TDD, и я просто хочу убедиться, что конкретный метод хранилища вызывается при выполнении метода viewmodel.
class SignInViewModel{ CustomerRepository customerRepository; public void get(){ customerRepository.getCustomer(); } }
@Test public void get() { signInViewModel.get(); Mockito.verify(customerRepository).getCustomer(); }
customerRepository должен быть макетом.
Если вам нужна дополнительная информация, я бы посоветовал вам проверить это
https://github.com/android/architecture-samples/blob/dev-todo-mvvm-live/todoapp/app/src/test/java/com/example/android/architecture/blueprints/todoapp/addedittask/AddEditTaskViewModelTest.java
Mockito verify используется в вышеуказанном TestSample. Вы также можете увидеть, как репозиторий подвергается насмешкам. Если вы получаете NPE, возможно, вы не смоделировали свой репозиторий или не создали свою viewModel в своем тесте. Если вам все еще неясно, я бы порекомендовал вам разобраться с основами Junit и Mockito.
Попробуйте внедрить экземпляр репозитория через конструктор viewmodel. После этого смоделируйте экземпляр репозитория в своем тестовом классе и убедитесь, что вы вызываете метод get (), вызывается метод getCustomer () из репозитория.