假设我已经精炼了
module RefinedString
refine String do
def remove_latin_letters
#code code code code
end
end
end
我在课堂演讲中使用它:
class Speech
using RefinedString
def initialize(text)
@content = text.remove_latin_letters
end
end
我已经在 RSpec 中编写了改进测试,现在我正在测试Speech class
describe Speech
let(:text) { "ąńńóyińg" }
it 'should call my refinement' do
expect(text).to receive(:remove_latin_letters)
Speech.new(text)
end
end
但我明白了RSpec::Mocks::MockExpectationError: "ąńńóyińg" does not implement: remove_latin_letter
我不认为嘲笑它是一个好的解决方案(但我可能错了!在这里嘲笑解决方案吗?)
所以我尝试了
let(:text) { described_class::String.new("ąńńóyińg") }
但结果是一样的。
我不想using RefinedString
在我的 RSpec 中显式调用(它应该自己解决,对吧?)
如何让 RSpec 了解我的改进方法?