equ*_*nt8 6 ruby-on-rails internationalization rspec-rails ruby-on-rails-3
问题背景:
假设config/locales/en.yml中有一些非常重要的行对于存在至关重要.
en:
foo:
bar: "bubla!"
Run Code Online (Sandbox Code Playgroud)
所以我现在测试的方式是这样的
#spec/locals_spec.rb
require 'spec_helper'
describe I18n do
it do
I18n.t('date.datepicker').should be_kind_of(String)
end
end
Run Code Online (Sandbox Code Playgroud)
这样我只是确保翻译存在并且不会继续(例如'foo.bar.car.lol'
但我仍然不满意
问题:使用RSpec测试I18n翻译的最佳实践是什么?在spec文件夹中我应该放置它们?
查看此StackOverflow问题以获取一些想法.我首选的方法就是回答同一个问题.
更新:这些天我倾向于使用i18n-tasks gem来处理与i18n相关的测试,而不是我上面写的或者之前已经在StackOverflow上回答的问题.
我想在我的RSpec测试中使用i18n主要是为了确保我对所有内容都有翻译,即没有错过任何翻译.i18n-tasks可以通过我的代码的静态分析来做到这一点,所以我不需要再为所有人运行测试I18n.available_locales了(除了测试特定于语言环境的功能时,例如,从任何语言环境切换到任何其他语言环境)系统中的区域设置).
这样做意味着我可以确认系统中的所有i18n密钥实际上都有值(并且没有未使用或过时),同时保持重复测试的数量,从而减少套件运行时间.
| 归档时间: |
|
| 查看次数: |
6765 次 |
| 最近记录: |