我有一个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
的{{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,如何模拟一个模拟的成员变量(而非方法)。