如何在Mockito中模拟模拟类的成员

时间:2019-03-06 05:52:14

标签: mockito

我有一个Repo班。该类具有类型hasher的字段HasherHasher具有方法hashRepo用于我正在进行单元测试的课程User中。

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

在单元测试中,我嘲笑了Repo

val mockRepository = mock(classOf[Repo])

,然后在测试中调用User的{​​{1}}方法。

signup

但是由于val response: Future[Result] = user.signup(request) User中直接调用Hasher的{​​{1}}方法,因此代码崩溃了hash。我想这是因为当我嘲笑signup并可以模仿其方法时,val hashedPassword = repo.hasher.hash(signupInfo.password);不是方法,而是Repo的实例,并且它可能为null。

如果无法重构代码并创建getter和setters,如何模拟一个模拟的成员变量(而非方法)。

0 个答案:

没有答案