簡體   English   中英

我應該在Mongoid中使用RSpec匹配器的哪個寶石?

[英]Which gem for RSpec matchers should I use with Mongoid?

似乎有兩個寶石提供RSpec匹配器與Mongoid一起使用。

哪個是更好的選擇,為什么?

MONGOID-RSPEC
Evan Sagge的mongoid-rspec gem為Mongoid提供RSpec匹配器。 包括關聯,選項,驗證和字段的匹配器。
http://github.com/evansagge/mongoid-rspec

REMARKABLE-MONGOID
Brian Cardarella的非凡的mongoid寶石為Mongoid提供了RSpec匹配器。 它包含僅適用於Mongoid的匹配器,以及來自Remarkable :: ActiveModel的所有驗證匹配器。
http://github.com/bcardarella/remarkable_mongoid

就個人而言,我認為你不應該使用它們。 指定您希望從代碼中獲得的行為 ,而不是實現 ,您的規范將更有意義。

如果您決定從Mongoid切換到MongoMapper會發生什么? 或者回到ActiveRecord? 您必須拋棄大部分測試套件並重新編寫它。

所有這些庫都指導您進行開發驅動測試,這是BDD / TDD的完全對立面。

不幸的是,非凡的mongoid的優點也是它的劣勢。 我們的想法是使用Remarkable ActiveModel匹配器作為驗證器。 這需要Remarkable 4.0的alpha版本。 雖然Remarkable是一個質量非常高的圖書館,但自去年6月以來也沒有被觸及。 這是我的圖書館的一個大問題,主要的依賴關系在8個多月內沒有留下alpha版! 我抓住了幾個開發者,從未聽過他們中的任何一個。

至於哪兩個庫更好,快速查看README似乎mongoid-rspec有更多的功能。 但是,我從未使用它,也不能談論它的任何經驗。

所有這些都說得非常誠實(即使我寫了一個庫),我認為兩者都是廢話。 不幸的是,Shoulda開始了這種無用的驗證和協會測試方式,每個人都紛紛效仿。 (包括我自己)在幾乎每種情況下編寫測試都只是編寫實際代碼的重復工作。 你根本沒有真正測試任何東西。 在最好的情況下,他們可以看到一個完整性檢查。 在最壞的情況下,他們完全浪費時間。

我建議在測試套件的不同部分斷言行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM