ScalaMock - ошибка «Неожиданный вызов» при определении вызова - PullRequest
0 голосов
/ 15 октября 2018

Итак, у меня есть этот тест (к сожалению, я не могу включить полный код и не смог воспроизвести упрощенную версию):

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

Я что-то упускаю здесь очевидное?Проверяемый метод вызывается только один раз.Почему говорится, что метод был вызван, а затем не вызван одновременно?

1 Ответ

0 голосов
/ 05 ноября 2018

Не достаточно информации, чтобы ответить, почему это происходит.Вы не показываете, что такое offer, но вопрос заключается в том, что == контракт этого типа - это равенство содержимого, а не ссылка на равенство.Если этот тип ведет себя странно и находится вне вашего контроля, используйте вместо этого сопоставление предикатов: https://scalamock.org/user-guide/matching/

...