RSpec“允许”静默终止“ it”块

我有这样的RSpec测试:

RSpec.describe 'outer' do
  describe 'inner' do
    context 'context' do
      it 'my test' do
        puts ":::: BEFORE"
        allow(String).to receive(:broken?).and return(false)
        puts ":::: AFTER"
        expect(0).to eq(1) # Won't be executed
      end
    end
  end
end

当然,在我自己的测试中,我没有在allow上使用String,而是在我的一个类上使用了,但是效果是一样的:运行此代码时,在打印之前,但不打印之后allow之后也不会执行任何其他操作。效果就像allow终止测试,没有错误消息; RSpec仅显示“ 1个示例,0个失败”。

其他值得一提的东西:

RSpec模拟是使用mocks.verify_partial_doubles = true配置的,但是效果是相同的,这取决于我们用allow指定现有方法还是(例如在我的示例中)不存在的方法。 / p>

使用config.warnings = true打开警告。

您知道为什么allow可能会显示此行为吗?

netdyk 回答:RSpec“允许”静默终止“ it”块

您有一行:

allow(String).to receive(:broken?).and return(false)

此呼叫allow(String).to(receive(:broken?).and(return(false)))

因此,您呼叫return关键字以无提示方式结束示例。

您应该致电and_return而不是and return(注意,请使用下划线而不是空格)。

本文链接:https://www.f2er.com/3072559.html

大家都在问