私が行ったことのために仕様を設定する際に問題があります。私はこれを手作業でテストしたので、それが望むように動作していることは分かっていますが、依然として仕様が必要かどうかは分かります。コントローラにパラメータを渡すためのrspecテスト
私は選手のインデックスを持っていますし、優先順位の高い選手を割り当てることができるチームのセクションもあります。割り当てを行うことで、インデックスを生成する最初のコントローラから取得します。私はここのparams
ajax:
url: "#{admin_players_path(disabled: 'false')}"
dataType: 'json'
を渡していますちょうどAJAX呼び出しがコントローラである持っているチームの部分については
、私はチームのページからのリクエストを占めているそこの条件を持っています。
def index
@q = @player.search(params[:q])
if params[:disabled] == 'false'
@player = @q.result(distinct: true).enabled
else
@player = @q.result(distinct: true)
end
end
これは基本的に私のアプリ側ですべてのことを行い、うまくいきます。私が通常の指数でプレーヤーを尋ねると、それは私には無効で有効になっていることが示され、優先プレーヤーを割り当てようとすると、有効なプレイヤーのみが表示されます。
私の問題は、そのパラメータが変更されたことを考慮して正しく設定されていないため、私の仕様の周りを回転しています。
context "with a prioritized player set up" do
let(:params) { { disabled: false } }
let!(:player1) { create(:player, disabled: true, disabled_at: Time.current) }
let!(:player2) { create(:player) }
it 'returns only enabled players' do
get :index, params: params
expect(assigns[:player]).to_not include(player1)
end
end
かかわらず、私はセットアップに自分仕様にしてみてくださいどのように、私は適切な状態に私が好きな方法を取得し、失敗するスペックを取得し維持することはできません。誰かが私がこのもので逃していることを知っていますか?
エラーが発生しているスペックが生成しているというエラーメッセージが表示されずにデバッグするのが難しいため、スペックの出力を送信できますか? – sonna
それは少し難しいですが、私は 'Failure/Error:expect(assigns [:players])to_not include(player1)'というメッセージを表示します。特に、私が苦労しているのは、私の仕様にある条件の反対側をテストすることです。 ' params [:disabled] ==' false ' @player = @ q.result(distinct:true).enabled' コントローラーのセクションが正しく設定されていることは間違いありません。 – kdweber89