gpt4 book ai didi

ruby - 为什么 FakeFS 会破坏 RSpec?

转载 作者:数据小太阳 更新时间:2023-10-29 09:00:18 24 4
gpt4 key购买 nike

test_spec.rb:(来自 FakeFS example)

require 'fakefs/spec_helpers' 

describe 'Test' do
include FakeFS::SpecHelpers
it 'should fail' do
expect(1).to eq(2)
end
end

describe 'Test2' do
it 'should fail' do
expect(1).to eq(2)
end
end

rspec spec/test_spec.rb 返回 superclass mismatch for class File 第一次测试和正常 expected: 2 got: 1 在第二种情况。匹配器更改(例如 be_kind_of(String))不会影响结果。为什么会发生这种情况,如何解决?

ruby -v

ruby 2.4.0dev (2016-03-19 trunk 54188) [x86_64-linux]

最佳答案

我刚遇到这个问题,接受的答案对我没有帮助。

但我最终通过将以下行添加到我的 spec_helper.rb 的顶部解决了这个问题:

require 'pp'

我有一个包含以下行的 .rspec 文件,以确保始终加载 spec_helper:

--require spec_helper

在FakeFS readme中有记载,在fakefs之前需要require pp来避免这个问题,但是我没有require pp我自己。它一定是我使用的其他一些 gem 隐式要求的*。

因此,通过在 fakefs 之前明确要求 pp,我的规范现在可以正常运行了。

* 我怀疑 RSpec 使用 pp 来打印错误消息,因为我可能会在 expect(true).to eq false

行中导致异常

关于ruby - 为什么 FakeFS 会破坏 RSpec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37280343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com