我正在測試錯誤處理。我想第一次調用mockedObject.foo()
來拋出一個新的IOException,第二次返回吧。我想下面的代碼,使用Spock在多個返回結果中拋出IOException
mockedObject.foo() >>> [{throw new IOException()}, bar]
但是,當我運行測試,我得到一個錯誤,指出一個封閉不能轉換到酒吧,
FooSpec $ _ $ spock_feature_0_1_closure2不能轉換爲Bar
我該如何用Spock來嘲笑這種行爲?
編輯:看到由tim_yates引用的文件後,我只是改變了測試,
mockedObject.foo() >>> firstBar >> {throw new IOException()} >> secondBar
此接近,足以測試我所需要的測試。下面的代碼拋出了同樣的異常,所以我猜Spock正在設置基於第一個對象返回的模擬方法的返回類型。
mockedObject.foo() >>> {throw new IOException()} >> secondBar
感謝您的鏈接的文檔。不幸的是,我得到了與該代碼相同的結果。 –
被測試的方法'foo()'看起來像什麼? –
'foo()'未在測試中。被測方法基本上循環調用foo和處理錯誤。 –