我正在测试错误处理。我要第一个电话mockedObject.foo()
抛出一个新的 IOException,第二个返回 bar。我尝试了以下代码,
mockedObject.foo() >>> [{throw new IOException()}, bar]
但是,当我运行测试时,我收到一个错误,指出无法将闭包转换为 Bar,
FooSpec$_$spock_feature_0_1_closure2 cannot be cast to Bar
我如何用 Spock 模拟这种行为?
编辑:在看到 tim_yates 引用的文档后,我只是将测试更改为,
mockedObject.foo() >>> firstBar >> {throw new IOException()} >> secondBar
这足以测试我需要测试的内容。下面的代码抛出了相同的异常,所以我猜 Spock 正在根据第一个对象返回设置模拟方法的返回类型。
mockedObject.foo() >>> {throw new IOException()} >> secondBar
最佳答案
关于groovy - 使用 Spock 在多个返回结果中抛出 IOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33372706/