我創建了一個服務對象(http://railscasts.com/episodes/398-service-objects),它基本上創建了兩個模型A和B,它們建立它們之間的關係,其中B屬於A,並返回A(這又可以訪問B通過一個給定的協會)。返回無效的測試模型
錯誤,我返回一個散列與錯誤信息。正如我試圖測試這種方法,我現在有一個問題,現在有兩種可能的返回類型:一個模型(當它通過)或一個散列與錯誤信息。
這是一個設計錯誤的信號?我知道你什麼時候第一次測試(TDD)可以避免這樣的設計問題。
如果是問題,那麼我知道我需要返回一個無效的A模型。假設模型B在創建時拋出一個錯誤,我將如何仍然能夠返回一個無效的A模型?
如果返回一個錯誤散列沒問題,那我怎麼能設計這個方法來測試友好?
感謝您的回覆。我正在構建一個API,並且無法承受引發Ruby異常/錯誤的問題,因爲我需要以JSON方式優雅地將錯誤返回給用戶。你會在這種情況下建議什麼? – darksky
查看最新答案的最後一段。 –
是的,我已經在我的控制器中這樣做了。我的服務返回一個有效的模型(在這種情況下,控制器正常繼續)或者表示錯誤的哈希(在這種情況下拋出HTTP響應代碼錯誤等)。在這種情況下,我的服務可以返回散列或有效模型,還是應該嘗試查看是否可以返回例如無效模型?如果模型B是無效模型(請參閱上面的問題B)? – darksky