как издеваться над членом издевательского класса в Мокито - PullRequest
0 голосов
/ 06 марта 2019

У меня есть класс Repo.Класс имеет поле hasher типа Hasher.Hasher имеет метод hash.Repo используется в классе User, который я тестирую модулем.

class User(repo:Repo){
   signup(signupInfo:SignupInfo){
   val hashedPassword = repo.hasher.hash(signupInfo.password);
  }
}

В модульном тесте я высмеял Repo.

val mockRepository = mock(classOf[Repo])

, а затемвызовите User метод signup в тесте.

val response: Future[Result] = user.signup(request)

Но так как User напрямую вызывает Hasher hash метод в signup, код падает val hashedPassword = repo.hasher.hash(signupInfo.password);,Я полагаю, что это потому, что когда я высмеиваю Repo и могу высмеивать его методы, hasher - это не метод, а экземпляр Hasher, и он, вероятно, равен нулю.

Как я могу высмеивать переменные-члены(не методы) макета, если я не могу реорганизовать код и создать методы получения и установки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...