ruby-on-rails - 分配如何知道在集成测试中在哪里寻找实例变量?
问题描述
我一直在关注 Rails 教程,并了解了assigns
Rspec 的方法。
这是它在集成测试中的使用方式:
class SomeTest < ActionDispatch::IntegrationTest
test "simplified test" do
get '/some/path'
#some assertions
get '/other/path'
assert_equal 'changed', assigns(:some_variable)
end
end
分配似乎可以访问最后一次调用的控制器/视图。
是这样吗?如何assigns
获取实例变量some_variable
?
这似乎意味着在从assigns
.
解决方案
事实证明,Rails 将集成测试视为功能测试,因此文档中为后者描述的实例变量适用于前者。在集成测试中,这些变量往往会被覆盖,因此您将在调用之前访问状态。
这意味着在集成测试中您可以访问:
- @controller:最后一个被调用的控制器
- @request:发送的最后一个请求
- @response:返回的最后一个响应对象
assings
只是包装对@controller.view_assigns
所有可用于视图的实例变量的访问。
推荐阅读
- regex - 提取由模式分隔的时间码和后面的行中的文本
- angular - 从 Angular 表单组中获取值
- compression - 使用移至前端算法预处理数据如何帮助霍夫曼编码?
- go - 使用私钥直接将文件从 aws s3 上传到 linux 服务器
- sql - 如何使用“SQL for Confluence”获取“脚本字段”值?
- android - Pull-To-Refresh,但不是刷新,而是在flutter上带来一个新页面
- java - 如何使用正则表达式在 Java 中的特定模式之后提取子字符串?
- python - 从包含元组坐标列表的 GeoPandas df 列到包含 LineString 的列
- javascript - 使用 Python Selenium 在 JavaScript 中渲染页面
- amazon-web-services - AWS SAM 本地示例失败,找不到图像