嘲笑一个类无法正常工作

时间:2019-04-02 17:06:19

标签: mockito silhouette

在一个函数中,我正在创建CredentialsProvider的实例并调用其authenticate方法。

val credentialsProvider = new CredentialsProvider(authInfoRepository, passwordHasherRegistory)
              val loginInfoFuture: Future[LoginInfo] = credentialsProvider.authenticate(credentials) 

在单元测试中,我正在创建CredentialsProvider的模拟。

val mockCredentialsProvider = mock(classOf[CredentialsProvider])

在我的测试用例中,我在调用authenticate时嘲笑一个值。

when(testEnv.mockCredentialsProvider.authenticate(ArgumentMatchers.any[Credentials])).thenReturn(
        Future{
          println(s"mocked credentials provider will return ${testEnv.loginInfo}")
          testEnv.loginInfo}
      )

运行测试用例时,它崩溃了。从堆栈跟踪看,似乎authenticate的实际实现被调用了,而不是简单地返回一个值。

at com.mohiva.play.silhouette.persistence.repositories.DelegableAuthInfoRepository.find(DelegableAuthInfoRepository.scala:51)
    at com.mohiva.play.silhouette.impl.providers.PasswordProvider.authenticate(PasswordProvider.scala:73)
    at com.mohiva.play.silhouette.impl.providers.PasswordProvider.authenticate$(PasswordProvider.scala:72)
    at com.mohiva.play.silhouette.impl.providers.CredentialsProvider.authenticate(CredentialsProvider.scala:46)
    at com.mohiva.play.silhouette.impl.providers.CredentialsProvider.$anonfun$authenticate$1(CredentialsProvider.scala:66)

为什么我的模拟代码不起作用?

0 个答案:

没有答案