mbi*_*ras 4 ruby tdd minitest railstutorial.org ruby-on-rails-5
我正在尝试使用 minitest 访问控制器内的实例变量。
例如:
microposts_controller.rb:
def destroy
p "*"*40
p @cats = 42
end
Run Code Online (Sandbox Code Playgroud)
@cats我将如何测试with inside with minitest的值microposts_controller_test.rb?
我知道我可以delete从浏览器提交请求并检查我的服务器日志并找到:
"****************************************"
42
Run Code Online (Sandbox Code Playgroud)
我在另一个答案中读到,我可以访问assigns包含所有实例变量的哈希,但它不起作用。我也尝试过查看该controller物体的内部。如下图所示:
microposts_controller.rb:
test "@cats should exist in destroy method" do
delete micropost_path(@micropost)
p controller.instance_variables
p assigns[:cats]
end
Run Code Online (Sandbox Code Playgroud)
输出:
[:@_action_has_layout, :@_routes, :@_request, :@_response, :@_lookup_context, :@_action_name, :@_response_body, :@marked_for_same_origin_verification, :@_config, :@_url_options]0:04
nil
Run Code Online (Sandbox Code Playgroud)
我期望看到对象@cats内部的实例变量controller。我也期待看到42输出。
我在这里缺少什么?
小智 5
您可以使用view_assigns:
# asserts that the controller has set @cats to true
assert_equal @controller.view_assigns['cats'], true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2733 次 |
| 最近记录: |