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 返回第一个测试的类 File 的父类(super class)不匹配
,以及正常的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 自述文件中有记录,您需要要求 pp
之前fakefs
为了避免这个问题,但我没有要求 pp
我。我使用的其他一些 gem 一定隐式地需要它*。
因此,通过明确要求 pp
之前fakefs
,我的规范现在可以正常运行。
* 我怀疑 RSpec 使用 pp
对于 pretty-print 错误消息,因为我可能会导致 expect(true).to eq false
行中出现异常
关于ruby - 为什么 FakeFS 会破坏 RSpec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37280343/