У меня довольно сложный тест, где я решил пойти с приближением частичного ступени тестируемого класса. в моем тесте у меня есть что-то вроде этого:Проблемы с stubbing spy'ed object в scala
val srv = new Service()
val srvSpy = spy(srv)
doReturn(now).when(srvSpy).getRunDateInTimeZone(futureChecklist)
doReturn("boo").when(srvSpy).interpolateChecklistName("name", now)
val returnTuple = (createdChlRev, createdChl)
doReturn(returnTuple).when(srvSpy).create(fChlCreatorId,
fChlCreatorEmail,
"username",
true,
templateId,
"boo",
optDueDate)(connection)
val (chlRev, chl) = srv.createFromFutureChecklist(futureChecklist)(connection)
В приведенном выше коде, первые два погасил методы работы, как и ожидалось. Тем не менее, последний выдает ошибку:
[error] Tuple2 cannot be returned by create$default$8() [error]
create$default$8() should return JsObject [error] *** [error] If you're unsure why you're getting above error read on. [error] Due to the nature of the syntax above problem might occur because: [error] 1. This exception might occur in wrongly written multi-threaded tests. [error] Please refer to Mockito FAQ on limitations of concurrency testing. [error] 2. A spy is stubbed using when(spy.foo()).then() syntax. It is safer to stub spies - [error]
- with doReturn|Throw() family of methods. More in javadocs for Mockito.spy() method.
Я пытался кучу разных приближались из гася и все еще получаю ту же ошибку. На данный момент я понятия не имею, где искать. Что я делаю неправильно?
Любой совет будет полезен.
Благодаря