reCAPTCHAを利用するため、railsプラグインrecaptchaを使いました。
test環境、cucumber環境ではverify_recaptchaは常にtrueを返すので、モックは不要でした。
test環境でのreCAPTCHAのinvalidの確認をするには、test環境でPRIVATE_KEYとPUBLIC_KEYを設定して、
it "should be tested under effective recaptcha" do Recaptcha.with_configuration :skip_verify_env => [] do expect { click_button "Sign up" }.not_to change(User, :count) end end
で行けそうですが、なぜかその後のexampleでもskip_verify_envが復帰せず、verify_recaptchaが有効のままです。
example(it文)を囲むブロックをwith_configurationに渡すと、skip_verify_envが切り替わらないので、サーバー側とRSpecでプロセスが違ったりするのでしょうか?その辺りもよくわからず。
まだ、どう書くのがよいか決定版がない状況です。