Я работаю со ScalaMock и ScalaTest, чтобы собрать несколько модульных тестов. Я хочу использовать синтаксис ожидания ScalaMock, чтобы подтвердить, что служба, над которой я работаю, передает приемлемый Json в имитируемый ресурс. В этом случае приемлемо означает, что некоторые внутренние поля могут отличаться, поэтому я написал пользовательскую функцию, чтобы определить, совпадают ли нужные мне поля. Проблема с этим заключается в том, что он производит относительно бесполезную регистрацию, когда ожидания не оправдываются. Ожидания установлены следующим образом:
(mockedResource.doAThing(_: Json)(_: SomeImplicitThing))
.expects(
where(
jsonSimilarAndImplicitEqual(
expectedJson,
anInstanceOfImplicitThing
)(_, _)
)
)
Производить следующую регистрацию при сбое:
- should forward acceptable Json to the mockedResource
Unsatisfied expectation:
Expected:
[info] inAnyOrder {
[info] <mock-1> MockedResource.doAThing<function1> once (never called - UNSATISFIED)
[info] }
Я хотел бы иметь возможность предоставить некоторую пользовательскую функцию ведения журнала, чтобы описать, почему jsonSimilarAndImplicitEqual оценивается как false в разумном месте. Я надеялся, что блока inAnyOrderWithLogging будет достаточно, но оказалось, что я даже не могу использовать эту конструкцию, поскольку она не поддерживается для AsyncMockFactory.