minitestでコントローラ内のインスタンス変数にアクセスしようとしています。例えばMinitestでコントローラインスタンス変数にアクセスする
:
microposts_controller.rb:
def destroy
p "*"*40
p @cats = 42
end
どのように私はminitestと内部microposts_controller_test.rb
で@cats
の値をテストするのでしょうか?
私は、ブラウザからdelete
リクエストを送信し、私のサーバーのログをチェックして見つけることができます知っている:
"****************************************"
42
私はすべてのインスタンス変数とassigns
ハッシュへのアクセス権を持っていることanother answerに読みますが、それはdidnの仕事はありません。また、controller
オブジェクトの内部を調べてみました。以下に示す:
microposts_controller.rb:
test "@cats should exist in destroy method" do
delete micropost_path(@micropost)
p controller.instance_variables
p assigns[:cats]
end
出力:
[:@_action_has_layout, :@_routes, :@_request, :@_response, :@_lookup_context, :@_action_name, :@_response_body, :@marked_for_same_origin_verification, :@_config, :@_url_options]0:04
nil
Iはcontroller
オブジェクト内部@cats
インスタンス変数を参照するために期待していました。私はまた、42
が出力されることを期待していました。
私はここで何が欠けていますか?