ScalaMock - ошибка "Неожиданный вызов" при определении вызова
Итак, у меня есть этот тест (к сожалению, я не могу включить полный код и не смог воспроизвести упрощенную версию):
"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 ответ
Не достаточно информации, чтобы ответить, почему это происходит. Вы не показываете, что offer
есть, но вопрос зависит от ==
Контракт такого типа равен контентному равенству, а не ссылочному равенству. Если этот тип ведет себя странно и находится вне вашего контроля, используйте вместо этого сопоставление предикатов: https://scalamock.org/user-guide/matching/