[rails] Rspec allow_any_instance_of を使う

業務でテスト(request_spec)を書いている時に、以下のようなコードのテストを書く状況になった。

request_specなので、status codeがきちんと返ってくるのかテストしたいだけです。

user.connected_with_group? 内の処理を気にしたくない時に、allowメソッドを使って擬似的に通したこと

にすれば、モデルの処理を気にしなくても済みます。

しかし今回の場合、allow()の引数にUserモデルのインスタンスが入るのですが、インスタンスを作るためにも

コードを書かなくてはいけないので長くなってしまいます。

 

そこで、使えるのが allow_any_instance_ofメソッドです

allow_any_instance_of

引数にモデルを渡すことで、そのモデルのインスタンスメソッド全てにアクセスできるようになります。

 

上記の例は、

Userモデルのどんなインスタンスが来て、connected_with_group?メソッドを呼び出しても、trueを返すようなコードになっています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA