在RSpec中测试带有I18n翻译的Ruby代码时,我得到如下错误:
translation missing: en.lib.filter.equal_to
这是一个简化的例子:
def word_for_operator
I18n.t('lib.filter.equal_to')
end
规格:
it "returns the correct label" do
expect(filter.word_for_operator).to eq("some value")
end
在Rails中一切正常。
如何在我的规格中使用I18n?
答案 0 :(得分:0)
以下不会解决你看起来丑陋的问题吗?我明白,这不是你想要的解决方案,但它足够了。
it "returns the correct humanised label" do
{
'lib.quattro_filter.none' => 'None',
'lib.quattro_filter.and' => 'and',
...
}.each do |name, value|
allow(I18n).to receive(:t).with(name).and_return(value)
end
# the same with expects
end