ruby-on-rails - Rails 功能测试 assert_select 在 AJAX 发布后找不到任何内容

标签 ruby-on-rails ruby testing assert xmlhttprequest

在 Rails 2.3.2 上,我正在尝试在功能测试中测试 View

def test_view
 get :form
 xhr :post, :add_to_cart, {:id => 1}
 post :create, {:param => value}
 assert_select 'title', 'Success!'
end

但不断失败:

预计至少有 1 个元素匹配“title”,找到 0 个。 不是真的。

我知道您不能在 xhr 调用后使用“assert_select”,但在这种情况下,我是在常规发布请求后执行此操作。

如果我放弃 xhr 请求

def test_view
 get :form
 post :create, {:param => value}
 assert_select 'title', 'Success!'
end

然后它就像魅力一样工作。 我可以手动设置购物车(我存储在 session 中),但那样我就不会真正测试 View ...

有什么想法吗?

最佳答案

我想您已经明白了——功能测试需要一个 Controller 操作,而不是多个操作。我建议将其替换为 integration test .

关于ruby-on-rails - Rails 功能测试 assert_select 在 AJAX 发布后找不到任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5067594/

相关文章:

ruby-on-rails - Rails 3 - 通知和错误 Flash 不能部分呈现

ruby - 如何在 Ruby 中调度对 instance_methods 的调用?

ruby - 如何点击元素的特定坐标

android - 如何在没有 Activity 的情况下在 Android JUnit 测试的 UI 线程中运行代码?

ruby-on-rails - Rspec 中回形针内容类型验证失败

ruby-on-rails - 将 form_for 与嵌套资源结合使用

ruby-on-rails - AES-256-GCM Python 密码学与 Rails OpenSSL

ruby-on-rails - Rails on Rails 将其提升到一个新的水平

ruby-on-rails - 使用 Shoulda Ruby on Rails 获取 HTTP 响应

c# - 将 api 项目作为后台进程运行 C#