0

所以我有这个测试(不幸的是我不能包含完整的代码并且未能重现简化版本):

"create method" should {
    "return OK" in {
        val offerService: OfferService = mock[OfferService]
        (offerService.create _).expects(offer).returning(Future(Left(Created())))
        val controller = new OfferController(offerService)
        val request = FakeRequest(POST, "/offer").withJsonBody(Json.toJson(offer))
        val result: Future[Result] = call(controller.create, request)
        status(result) must be (201)
    }
}

失败并出现此错误:

[info] create method
[info] - should return OK *** FAILED ***
[info]   Unexpected call: <mock-1> OfferService.create(Offer(PixelSlate))
[info]   
[info]   Expected:
[info]   inAnyOrder {
[info]     <mock-1> OfferService.create(Offer(PixelSlate)) once (never called - UNSATISFIED)
[info]   }
[info]   
[info]   Actual:
[info]     <mock-1> OfferService.create(Offer(PixelSlate)) (Option.scala:121)

我在这里遗漏了一些明显的东西吗?模拟方法只调用一次。为什么说该方法被调用然后没有同时被调用?

4

1 回答 1

0

没有足够的信息来回答为什么会发生这种情况。你没有展示什么offer是,但问题取决于==那种类型的合同是内容平等而不是引用平等。如果该类型的行为很有趣,并且超出您的控制范围,请改用谓词匹配:https ://scalamock.org/user-guide/matching/

于 2018-11-05T08:24:29.143 回答