gpt4 book ai didi

ruby-on-rails - 如何使用 RSpec 在 Rails 中测试 i18n

转载 作者:行者123 更新时间:2023-12-04 15:25:17 26 4
gpt4 key购买 nike

问题上下文:

假设 中有一些非常重要的行配置/语言环境/en.yml 这对存在至关重要。

en:
foo:
bar: "bubla!"
  • 我不想测试每一行,但
  • 我不希望测试太脆弱(所以没有 I18n.t('foo.bar').should =~/bubla/)

  • 所以我目前正在测试的方式是这样的
    #spec/locals_spec.rb

    require 'spec_helper'
    describe I18n do
    it do
    I18n.t('date.datepicker').should be_kind_of(String)
    end
    end

    这样我只是确保翻译存在并且它不会继续(例如'foo.bar.car.lol'

    但我还是不满意

    问题:使用 RSpec 测试 I18n 翻译的最佳实践是什么,我应该将它们放在 spec 文件夹中的什么位置?

    最佳答案

    查询 this StackOverflow question对于一些想法。我的首选方式是 this answer在同一个问题上。

    更新 : 这些天我倾向于使用 i18n-tasks gem 来处理与 i18n 相关的测试,而不是我上面写的或之前在 StackOverflow 上回答的内容。

    我想在我的 RSpec 测试中使用 i18n,主要是为了确保我对所有内容都有翻译,即没有遗漏任何翻译。 i18n-tasks 可以通过对我的代码进行静态分析来做到这一点,因此我不需要为所有 I18n.available_locales 运行测试。不再(除了测试非常特定于语言环境的功能时,例如,从系统中的任何语言环境切换到任何其他语言环境)。

    这样做意味着我可以确认系统中的所有 i18n 键实际上都有值(并且没有一个是未使用或过时的),同时保持重复测试的数量,从而降低套件运行时间。

    关于ruby-on-rails - 如何使用 RSpec 在 Rails 中测试 i18n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11347606/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com