【问题标题】:ScalaMock - "Unexpected call" error when the call is definedScalaMock - 定义调用时出现“意外调用”错误
【发布时间】:2018-11-05 16:24:29
【问题描述】:

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

"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)

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

【问题讨论】:

    标签: scala unit-testing testing scalamock


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      • 1970-01-01
      • 2014-08-12
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      相关资源
      最近更新 更多