ruby-on-rails - 测试 Rails 中对无效 UTF-8 的优雅处理

标签 ruby-on-rails ruby validation utf-8 middleware

我目前正在尝试确保我的 Rails 应用程序能够优雅地处理带有无效 UTF-8 数据的 POST 方法(例如\xFF)(使用机架中间件)

不幸的是,为此编写测试非常困难。

我尝试过的一件事是使用 Capybara 使用无效的 UTF-8 填写我的一个表单字段并提交,但是这会导致在我的测试输出中的终端中出现以下输出 - 而且它没有被 Rails 打印!

error : string is not in utf-8

是否有另一种方法可以模拟包含无效 UTF-8 数据的 POST 以验证是否显示 400 错误(或类似错误)?

注意:我试图避免必须针对应用程序的单独运行实例运行(例如,对其使用“curl”),而是直接使用 Capybara(或类似的)运行

最佳答案

您可以尝试发布包含无效 utf-8 数据的文件附件,尽管这也取决于您的表单本身。然而,当您测试一个相当模糊的边缘案例时,您总是可以创建一个只能在开发/测试环境中访问的表单,并且路由也只能用于测试。

这至少允许您以安全、仅测试的方式定位处理无效 utf-8 数据的代码。

关于ruby-on-rails - 测试 Rails 中对无效 UTF-8 的优雅处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15343781/

相关文章:

ruby-on-rails - 如何获取为特定模型类定义的所有 factory_girl 工厂?

ruby-on-rails - ruby rails : How to Get the Client IP Address

ruby-on-rails - 生产中创建 Mongoid 索引

arrays - 从其他数组更新哈希值数组

ruby-on-rails - 在 Rails 中使用 Stripe webhook

mysql - Ruby on Rails:解压缩(Zlib::Deflate)在一定时间后不起作用

ruby - cucumber 。跳过所有场景,如果一个失败

validation - 为什么 <o :validateAll> behave different than other validators?

arrays - 使用带有附加参数的自定义规则验证 Laravel 中的数组

c# - ListView 绑定(bind)项上的 ValidationRules