gpt4 book ai didi

使用 mockito 库的 Scala 单元测试

转载 作者:行者123 更新时间:2023-11-28 21:28:24 25 4
gpt4 key购买 nike

我在 akk-http 中编写其余测试用例,我在语句 when(mockedRepository.getAllFromModule).thenReturn(x) 中收到此错误。我的类如下:

class GetModulesRestTest extends WordSpec with Matchers with ScalatestRouteTest with MockitoSugar {


val mockedRepository = mock[ImplModuleRepository]
val dummyRoutes = new GetModulesRest().routes
val inputData = Modules(1L,Some("ModuleName"), Some("SomeDescription"), false)


val dataJson = """[{"id": 1,"name": "HR","description": "This is about HR module","isRemoved": false}]"""

"Check Software Test" should {

"check for java and zookeeper installation" in {

val x = Future(Seq(inputData))

when(mockedRepository.getAllFromModule).thenReturn(x)
Get("/getmodules") ~> dummyRoutes ~> check {

responseAs[String] shouldBe dataJson
}
}
}
}

这里 ImplModuleRepository 是一个抽象类,它从 postgres 数据库返回所有模块的列表,程序显示如上所述的错误,实际上声明 theReturn(x) 没有编译并显示此错误关于编译:

Error:(32, 47) overloaded method value thenReturn with alternatives:

(x$1: scala.concurrent.Future[Seq[com.reactore.launchpad.entity.Modules]],x$2: scala.concurrent.Future[Seq[com.reactore.launchpad.entity.Modules]]*)org.mockito.stubbing.OngoingStubbing[scala.concurrent.Future[Seq[com.reactore.launchpad.entity.Modules]]] <and>
(x$1: scala.concurrent.Future[Seq[com.reactore.launchpad.entity.Modules]])org.mockito.stubbing.OngoingStubbing[scala.concurrent.Future[Seq[com.reactore.launchpad.entity.Modules]]]
cannot be applied to (scalaz.concurrent.Future[Seq[com.reactore.launchpad.entity.Modules]])
when(mockedRepository.getAllFromModule).thenReturn(x)

不知道怎么回事

最佳答案

(来自评论):

看起来您正在导入并因此在测试中使用 Future 的 Scalaz 版本,但不是在 ImplModuleRepository 中。

关于使用 mockito 库的 Scala 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32537926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com