Модульный тест ViewModel Android - PullRequest
0 голосов
/ 26 февраля 2020

Я делаю TDD, и я просто хочу убедиться, что конкретный метод хранилища вызывается при выполнении метода viewmodel.

class SignInViewModel{
  CustomerRepository customerRepository;
  public void get(){
    customerRepository.getCustomer();
  }
}

Ответы [ 2 ]

0 голосов
/ 28 февраля 2020
@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.

0 голосов
/ 26 февраля 2020

Попробуйте внедрить экземпляр репозитория через конструктор viewmodel. После этого смоделируйте экземпляр репозитория в своем тестовом классе и убедитесь, что вы вызываете метод get (), вызывается метод getCustomer () из репозитория.

...