gpt4 book ai didi

ruby-on-rails - 为什么在测试 Rails 3 时不能更改当前语言环境?

转载 作者:行者123 更新时间:2023-11-28 20:09:37 26 4
gpt4 key购买 nike

我有一个多语言应用程序,我正在尝试为我的一个 Controller 编写一些测试。但是,我似乎无法在测试中更改当前语言环境。它在开发中工作正常。假设我的测试如下:

test "do something has to be done correctly" do
I18n.locale = :cn # set current locale to chinese
assert_equal :cn, I18n.locale
end

此测试因错误而失败:

<:cn> expected but was
<:en>.

:en 是我配置中的默认语言环境。

以前有人在 Rails 3 中遇到过这个问题吗?找到解决方案了吗?

最佳答案

您的代码完全按照您在功能测试用例中的方式插入,可以在新的 Rails 3.0.9 应用程序中完美运行。

话虽如此,在调用 get 或其他测试 Controller 的功能测试之前,在 I18n.locale 中设置语言环境不是 将在您的应用程序上下文中设置语言环境(仅在您的测试上下文中设置语言环境)。

通常您需要将诸如 { :locale => :cn } 之类的内容合并到您的参数中,以便为您的请求设置语言环境。这不会影响您正在展示的实际测试,但您可能没有准确展示失败的原因。

关于ruby-on-rails - 为什么在测试 Rails 3 时不能更改当前语言环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6655483/

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