2016-06-07 56 views
0

我在ruby中調用了一些框架方法和類。我面臨的問題是一些方法可能會拋出異常,因爲他們聯繫不在我控制範圍內的服務。我希望在測試的拆解方法中實際上有測試的結果(成功,失敗和XXX),所以我可以根據它做一些事情。有沒有一種方法可以做到這一點(不同於將整個測試包裹在開始/救援塊中)?紅寶石測試失敗,但有異常

回答

0

您試圖測試的代碼示例可能有所幫助。但取決於您正在使用的框架API,您可以將嘗試聯繫服務的方法存根,這會引發異常。如果您正在調用您正在嘗試測試的一種方法,並且它也引發了一個異常(不是非常乾的/ SRP代碼),那麼它會變得棘手。如果是這種情況,可以圍繞該方法調用進行開始/救援,或者將該調用存根到該更大的方法。做後者的問題是它可能會更加模糊你測試的價值。

+0

我們在談論集成測試。他們可能會很長。更具體的 - 硒UI測試。我面臨的問題是,當我調用與UI交互的方法時,可能會失敗,在這種情況下,我想截取屏幕截圖。存根會殺死測試的原因,包裝單獨的方法我開始/營救將要求每個呼叫被包裹,這也是不愉快的。正如我所說,我可以將整個測試方法包裝在開始/救援中,但這對我來說確實不太合適。 –

+0

用VCR或甚至標準的rspec mocks來存儲外部服務並不少見。單元測試與否。這個想法是測試你的代碼。你試圖捕捉異常的事實引發了對測試有效性的同樣關注 – agmcleod