我剛剛觀看了Minitest的Railscast。Minitest和Rspec
使用RSpec vs Minitest測試rails應用程序有什麼優缺點?我從RSpec轉換到Minitest會失去哪些功能?
我剛剛觀看了Minitest的Railscast。Minitest和Rspec
使用RSpec vs Minitest測試rails應用程序有什麼優缺點?我從RSpec轉換到Minitest會失去哪些功能?
我是RSpec開發人員之一,從未使用minitest,所以在閱讀此答案時考慮到我的偏見。總之,RSpec的強大之處在於它將如此多的測試概念轉化爲一流的對象。其中Test :: Unit和Minitest使用簡單的方法來進行斷言,RSpec使用支持否定,自我描述等的一流匹配器對象。 RSpec的示例是支持豐富元數據的一流對象; minitest/spec將it
編譯爲簡單方法,但不支持相同類型的豐富元數據。 RSpec支持使用接受參數的第一類構造(共享示例組)來指定共享行爲; w/minitest你可以使用inheritance or a mixin to re-use tests,但它沒有相同類型的一流的支持。 RSpec具有明確的格式化程序API(並且有許多第三方格式化程序使用它);我不知道minitest具有相同類型的一流格式化程序API。作爲一個不斷運行測試和整天練習TDD的人,我發現RSpec的強大功能讓我非常有用。儘管如此,許多人認爲它是過度的,而且額外的抽象會增加認知成本。
這裏有一些特定的功能RSpec的有,我相信MINITEST缺乏:
before(:all)
掛鉤(注意,這是應該很少使用的RSpec的電力用戶的功能,我只用它在幾在多年使用的RSpec的)around(:each)
鉤場合使用效益MINITEST的:
def test_blah
或it 'blah'
款式。總的來說,它有點像Sinatra vs. Rails,我認爲Minitest和RSpec都是很好的選擇,這取決於你的需求。最後一件事:如果Minitest有特定的方面,你更喜歡,但是你更喜歡RSpec的其他方面,它們可以很容易地混合和匹配。如果你有興趣,我可以撥打wrote a blog post about this。
感謝您的驚人的解釋。 –
請記住Boris,如果想要將MiniTest與Spork,Guard,Capybara以及任何類型的Javascript驅動程序集成在一起,那麼可以計劃花費整整一週的時間,試圖弄清楚它並使其穩定。當涉及到除了最基本的Rails應用程序之外的任何其他應用程序時,MiniTest還沒有準備好用於黃金時段。我給了它舊的大學嘗試自己,但它只是在挫折中結束。 – AKWF
我將Test/Unit
與shoulda
轉換爲spec-style Minitest,並且它付出了代價。它取消了樣板,他們說這也提高了速度。我從來沒有真正使用RSpec。相反,我寫了自己的原始測試和嘲笑框架(僅僅是爲了理解嘲笑,我在切換到Minitest時放棄了它)。我認爲RSpec中的stubbing/mocking可能會更先進,所以如果你已經學會了,就繼續使用它。否則,堅持Minitest,這將使您能夠與那些對RSpec無知的人(比如我)進行合作。
請參閱http://stackoverflow.com/questions/8423227/migrating-from-rspec-to-minitestspec – matt
也許這兩個問題應該合併,是否有合併問題的方式? –
+12票關閉!投票開放。 –