私は非常にRailsに慣れていて、RSpecで少し苦労しています。だから私はいくつかのコントローラが使用しているモジュール(懸念事項)を持っています。そのモジュール(ValidateAdmin)は、current_userとlogged_in_userの2つの他の関数を呼び出します。ほとんどの可能性をカバーするために、私はこれらの関数をスタブして戻り値を設定したかったのです。どのようにこの作品を作るための任意の提案?コントローラのRSpecモッキングモジュールの機能
describe ValidateAdmin do
before :all do
class FakeController < ApplicationController
include ValidateAdmin
end
end
let(:controller) { FakeController.new }
describe '#validate_admin_logged_in' do
controller.stub(:current_user).and_return(instance_double(User, admin?: true))
controller.stub(:logged_in_user).and_return(instance_double(User, admin?: true))
[RSpec contexts go here]
編集 - 私の模擬声明文を 'before'ブロック内に入れることで修正しました。また、実現されたスタブは廃止されており、ステートメントを許可するように切り替えられました。
現在のコードではどうなりますか? –
@MohammadAbuShady質問にそのことを書いてくれて申し訳ありませんが、少し急いでいました。非常に奇妙なエラーを投げていましたが、私はそれを 'before'ブロックに入れることで修正しました。私の部分ではダムの間違いですが、応答に感謝します。 – jdune