我在我的应用中使用Services,这不是“标准”应用组件之一。
假设我有一个规范测试如下
需要“rails_helper”
# spec/services/create_user.rb
RSpec.describe CreateUser, type: :service do
it "returns the error message" do
error_message = Foo.new.errors
expect(error_message).to eq(t("foo.errors.message"))
end
端
只测试返回的字符串是否与特定的翻译字符串匹配。
但是这会引发错误,因为帮助程序t()
不可用。
我可以明确地将其称为I18n.t()
,但出于我自己的好奇心,我如何包含正确的模块以便能够轻松地调用速记形式?
谢谢!
答案 0 :(得分:6)
您应该可以使用;
将其添加到RSpec配置中RSpec.configure do |config|
config.include AbstractController::Translation
end
这意味着您可以使用t()
代替I18n.t()