2011-12-07 47 views
6

從RSpec 2遷移到MiniTest::Spec是否有策略或一組步驟?我想看看爲一個大型項目做這個,但我不知道從哪裏開始。從RSpec遷移到Minitest :: Spec?

+0

當我最近看到MiniTest時,我並沒有對它留下太深刻的印象;我決定堅持使用RSpec。也就是說,如果MiniTest提高了與RSpec的競爭力,這可能成爲一個好主意。 –

+2

自從撰寫上一篇評論以來,Minitest已經成熟了許多,現在Rails,Nokogiri和其他人正在使用它。 –

回答

8

我沒有使用MINITEST ::規格爲長,我正在移植對一些我們的測試中的自己,但這裏有幾件事情我已經注意到從RSpec的未來:

  • 匹配器當然是不同的 - 它是must/wont而不是should/should_not,並且謂詞匹配消失了,因此您不能說must_be_true/must_be_false等。這就是說,如果你已經寫了自定義的RSpec匹配器,或者正在使用shoulda-matchers之類的,你應該可以在MiniTest中使用它們,這要感謝minitest-matchers gem。但是YMMV。
  • MiniTest :: Spec不提供context,因此您需要將其更改爲describe或別名。
  • MiniTest :: Spec也不提供described_class
  • 您也沒有before :all
  • subject必須手動設置(我想,有人糾正我,如果我錯了)。

所以要回答你的問題,在移植一個現有的測試套件方面,恐怕你不能真的做一個簡單的查找和替換,你必須在每個測試文件中移動一個一次。顯然,這意味着你必須確定這種努力是否值得。

+0

Minitest支持'subject {}'(我認爲它可能必須是手動的,但是,我總是在RSpec中明確地設置它),儘管它似乎不適用於'it'語法。它有自己的謂詞匹配器 - 你只需要做'must_be:valid?'而不是RSpec的'should be_valid'。 –