我有一个相当复杂的测试,我决定采用部分存根测试类的方法。在我的测试中我有这样的事情:
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)
在上面的代码中,前两个stubbed方法按预期工作。但是,最后一个抛出错误:
[错误]创建$ default $ 8()[错误]
无法返回Tuple2 create $ default $ 8()应该返回JsObject [错误] *** [错误]如果 你不确定为什么你上面读错了。 [错误]到期 以上语法的性质可能会出现问题,原因是:[错误] 1.此错误可能发生在错误编写的多线程测试中。 [错误]请参阅有关限制的Mockito常见问题解答 并发测试。 [错误] 2.间谍使用了 when(spy.foo())。then()语法。存根间谍更安全 - [错误]
- 使用doReturn | Throw()系列方法。更多关于Mockito.spy()方法的javadocs。
我正在尝试一堆不同接近的存根并仍然得到相同的错误。在这一点上,我甚至不知道在哪里看。 我做错了什么?
任何建议都会有所帮助。
谢谢
答案 0 :(得分:0)
谢谢,