RSpec Book - 意外的待定行为

时间:2014-09-15 22:25:42

标签: ruby rspec

我正在使用RSpec书,而我正在等待

的“有趣”结果

这是本书的代码(我的副本中的第119页)

context "with 1 exact match duplicated in guess" do
    it "returns 0" do
        pending("refactor number_match_count")
        marker = Marker.new('1234','1155')
        marker.number_match_count.should == 0
    end
end

此代码用于提供测试“待定”的rspec注释 但现在它显示为错误。

with 1 exact match duplicated in guess
returns 0 (FAILED - 1)

但是,如果我将“待处理行”移至“返回0”行之前我得到“预期”结果,那么以下代码

context "with 1 exact match duplicated in guess" do
    pending("refactor number_match_count")
    it "returns 0" do
        #pending("refactor number_match_count")
        marker = Marker.new('1234', '1155')
        marker.number_match_count.should == 0
    end
end

产生“预期”结果

with 1 exact match duplicated in guess
    refactor number_match_count (PENDING: Not yet implemented)
    returns 0

为什么我在一个地方而不是另一个地方收到待处理的错误。

可能最奇怪的是代码现在有效,我只是在我回去拉出待处理时才注意到这一点。

1 个答案:

答案 0 :(得分:1)

Rspec 3.1?待定的含义已经改变......

来自:https://www.relishapp.com/rspec/rspec-core/v/3-1/docs/pending-and-skipped-examples

  

示例可以标记为已跳过,但不是   执行或待执行,但失败不会执行   导致整个套件失败。当挂起的示例通过时   (即标记为未决的根本原因不再存在   现在)它将被标记为失败,以便与您沟通   它不应再被标记为待定。