当我在rspec控制器测试中放入“pending”时,它仍然运行CRUD辅助方法

时间:2014-10-01 21:08:37

标签: ruby-on-rails rspec

Pending对我来说不能阻止CRUD(“get”,“put”,“post”)等辅助方法在控制器测试中运行。

it "should update blah..." do
  pending "This is pending"
  put :update, { :id => @obj.id }
  expect(true).to eq(false)
end

这会导致调用“put”,但是期望部分不会运行。因此,挂起似乎符合期望,但不会阻止帮助程序运行。

我正在使用rspec 3.1

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:4)

pending的语义在rspec3中发生了变化。现在待定意味着规格预计会失败,因此现在执行待定规范(如果规范通过则将其标记为失败)

要停止运行规范,请使用skip。 Myron Marston在changes in RSpec 3

上的帖子中有更多信息