gpt4 book ai didi

ruby-on-rails - 使用 Rails 中的 Mocha 在 File.open 中 stub 写入方法

转载 作者:太空宇宙 更新时间:2023-11-03 16:21:16 31 4
gpt4 key购买 nike

我的 spec_helper.rb 具有以下配置:

RSpec.configure do |config|
config.mock_with :mocha
# .. other configs
end

我想测试下面这段代码:

File.open('filename.zip', 'wb') do |file|
file.write('some file content')
end

这是我的规范:

file_handle = mock
file_handle.stubs(:write).with('some file content').once
File.stubs(:open).with('filename.zip', 'wb').returns(file_handle).once

但输出显示没有调用 write 方法。

这是输出:

MiniTest::Assertion: not all expectations were satisfied
unsatisfied expectations:
- expected exactly once, not yet invoked: #<Mock:0x7fdcdde109a8>.write('some file content')
satisfied expectations:
- expected exactly once, invoked once: File.open('filename.zip', 'wb')

那么我是否以正确的方式插入 write 方法?如果没有,是否有任何其他方法可以在 do |obj| 中编写方法调用规范..end block ?

最佳答案

你可以简单地写:

file_handle = mock
file_handle.stubs(:write).with('some file content').once
File.stubs(:open).with('filename.zip', 'wb').yields(file_handle).once

关于ruby-on-rails - 使用 Rails 中的 Mocha 在 File.open 中 stub 写入方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33010459/

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