【问题标题】:Migrating from RSpec to Minitest::Spec?从 RSpec 迁移到 Minitest::Spec?
【发布时间】:2011-12-07 22:04:00
【问题描述】:

是否有从 RSpec 2 迁移到 MiniTest::Spec 的策略或步骤集?我想看看为一个大型项目做这件事,但我不知道从哪里开始。

【问题讨论】:

  • 最近看MiniTest的时候并没有给我留下太深刻的印象;我决定暂时坚持使用 RSpec。也就是说,如果 MiniTest 改进以与 RSpec 竞争,这可能会成为一个好主意。
  • 自从上一条评论写出来以来,Minitest 已经成熟了很多,现在 Rails、Nokogiri 和许多其他人都在使用它。

标签: rspec minitest


【解决方案1】:

我已经很久没有使用 MiniTest::Spec 了,我正在自己移植我们的一些测试,但这里有一些我注意到的来自 RSpec 的东西:

  • 匹配器当然是不同的——它是must/wont而不是should/should_not,并且谓词匹配器不见了,所以你不能说must_be_true/must_be_false之类的.
  • 也就是说,如果您编写了自定义 RSpec 匹配器,或者正在使用 shoulda-matchers 等,由于 minitest-matchers gem,您应该能够将它们与 MiniTest 一起使用。但是 YMMV。
  • MiniTest::Spec 不提供context,因此您需要将其更改为describe 或别名。
  • MiniTest::Spec 也不提供described_class
  • 你也没有before :all
  • subject 必须手动设置(我想,如果我错了,请有人纠正我)。

因此,要回答您的问题,就移植现有测试套件而言,恐怕您无法真正进行简单的查找和替换,您必须一次移植一个测试文件。显然,这意味着您必须确定付出的努力是否值得。

【讨论】:

  • Minitest 支持 subject {} (我认为它可能必须是手动的,但是无论如何我总是在 RSpec 中明确设置它),尽管它似乎不适用于 it {} 语法.它有自己的谓词匹配器——你只需要使用must_be :valid? 而不是RSpec 的should be_valid
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多