34
A
回答
37
mock
和stub
都是更一般的double
的別名。像context
和describe
,它們可以互換使用,使規格的意圖更清晰。這在The RSpec Book中有更詳細的描述。
2
似乎只是aliases因爲:__declared_as
似乎並沒有被用於消息。
1
雙打
當我們依賴於用不確定的特徵成分,我們可能會發現,文件受到損壞,磁盤發生故障時,網絡超時,並且服務器發生故障運行規範的中間。因爲這些是我們無法控制的事情,所以當我們運行我們的規格時,它們會導致不一致和令人驚訝的結果。雙打可以斷開我們的例子與這些依賴關係的實際實現。
殘段
當系統行爲基於一個序列。一個存根是完美的。因爲每個例子都可以指定一個不同的序列。例如: - 在隨機發生器的情況下,它顯然是非確定性的來源。我們想用穩定的序列來替換真正的隨機發生器。
嘲笑
一段時間,我們需要從可能尚不存在另一個對象的一些服務。在這種情況下,我們可以引入模擬對象。我們可以將其編程爲我們當前所期望的對象。所以當我們專注於交互時,模擬對象使得它更容易實現。
相關問題
- 1. 在RSpec中,before(:suite)和before(:all)之間有什麼區別?
- 2. 模擬類和接口之間有什麼區別?
- 3. 重新模塊中的組和組之間有什麼區別?
- 4. Rspec和水豚,訪問和獲取之間有什麼區別
- 5. Rspec和Rspec-Rails Gem有什麼區別?
- 6. ||之間有什麼區別?和|在R?
- 7. 仿真和模擬有什麼區別?
- 8. RSpec中stub_model和mock_model有什麼區別?
- 9. Ruby--單引號和雙引號之間有什麼區別?
- 10. 新雙(someString)和Double.parseDouble(someString)之間有什麼區別
- 11. 「層」和「層」之間有什麼區別?
- 12. Tableau和QlikView之間有什麼區別
- 13. Microsoft.CompilerServices.AsyncTargetingPack和Microsoft.Bcl.Async之間有什麼區別?
- 14. @Entity和@embeddable之間有什麼區別
- 15. ContentObservable和DataSetObservable之間有什麼區別?
- 16. touchmove和gesturechange之間有什麼區別?
- 17. :notification.flags和notification.defaults之間有什麼區別?
- 18. proc和lambda之間有什麼區別?
- 19. :: after和after之間有什麼區別?
- 20. read()和io.read()之間有什麼區別?
- 21. Request()和Request.Form()之間有什麼區別?
- 22. WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之間有什麼區別?
- 23. getA()和this.getA()之間有什麼區別?
- 24. (int)和intval()之間有什麼區別?
- 25. set_value和= pandas之間有什麼區別
- 26. * zoom和zoom之間有什麼區別?
- 27. {0}和「」之間有什麼區別?
- 28. typedef和using之間有什麼區別?
- 29. 「」和「'之間有什麼區別?
- 30. STDIN和tty之間有什麼區別?
而且文檔推薦使用'double'了'mock'和'stub': 您還可以使用模擬和存根方法來創建測試雙打,但這些方法都存在只向後兼容性,並很可能會已棄用,然後從未來版本中刪除(https://www.relishapp.com/rspec/rspec-mocks/) – welldan97
更新版本的rspec甚至會生成類似'DEPRECATION:stub「的警告。使用double來代替。 '。 – amoebe