首页 > 解决方案 > 测试搜索或丢失翻译的每个视图 span.translation_missing

问题描述

我正在开发一个 Rails 应用程序,我想测试每个视图以了解是否缺少任何翻译。我可以通过添加assert_select "span.translation_missing", false控制器或集成测试的每个视图来做到这一点,但我想遵循 DRY 原则。有没有办法做到这一点,而不必在控制器测试中的每个视图上编写断言代码?

标签: ruby-on-railstesting

解决方案


在 Rails 4.1.0 及更高版本上,您可以使用config.action_view.raise_on_missing_translations.

# app/config/environments/test.rb
Rails.application.configure do
  # ...
  # Raises error for missing translations
  config.action_view.raise_on_missing_translations = true
end

这实际上不会在您的应用程序中自动“测试每个视图”,但它会在呈现视图时告诉您是否缺少任何翻译。您实际上需要编写涵盖每个视图的集成测试。

请注意,控制器测试不是一个好主意。它们不会呈现视图,除非您显式配置它并且贬值以支持集成测试。您在应用程序中模拟用户路径的系统测试也将涵盖这一点。


推荐阅读