據我所知「單元測試不應該測試內部實現細節以便不會使該方法的重構複雜化」。那麼,我該如何測試這種方法呢?帶有副作用的單元測試方法
deleteOrder = (order) ->
backendService('deleteOrder', order.id)
cacheOfOrders.delete(order)
從我的單元測試環境(茉莉花),我可以打電話deleteOrder和模擬後端電話,但我不能訪問到cacheOfOrders。我想檢查一下cacheOfOrders.length是否縮小了。也許我做錯了,我不應該測試內部細節,但是如果我有一個像前一個方法但沒有後端調用的方法呢?
你可以創建一個'cachOfOrders'對象作爲一個單獨的測試,你可以運行嗎? – gmiley 2015-02-24 19:52:14
cacheOfOrders對於有問題的服務是私有的。我無法訪問或參考它。 – 2015-02-24 19:58:07
我的意思是,什麼是cacheOfOrders的一個實例?你可以測試該類的新實例,而不是通過實際實現它的內部工作來測試它嗎?如果它是開發人員創建的自定義類,則應該對其進行測試。如果它是框架提供的標準類,則不需要打擾它。 – gmiley 2015-02-25 12:15:58