Pregunta

Mi UsersControllerTest Actualmente falla porque uso verify_recaptcha en UsersController # crear. ¿Cómo puedo escribir mis pruebas de tal manera que una respuesta conocida buena CAPTCHA de se pasa con params [:] de usuario? Estoy utilizando reCAPTCHA, pero supongo que la pregunta se aplicaría a cualquier implementación de CAPTCHA.

Aquí está mi UsersController # crea

def create
  @user = User.new(params[:user])    
  if verify_recaptcha(@user) && @user.save
    flash[:notice] = "Account registered!"
    redirect_to new_order_url
  else
    flash.now[:error] = "Account not registered!"
    render :action => :new
  end
end

y aquí está mi prueba de funcionamiento

test "should create user" do
    assert_difference('User.count') do
      post :create, :user => { :login => "jdoe",
                               :password => "secret", 
                               :password_confirmation => "secret",
                               :first_name => 'john',
                               :last_name => 'doe',
                               :address1 => '123 Main St.',
                               :city => 'Anytown',
                               :state => 'XY',
                               :zip => '99999',
                               :country => 'United States',
                               :email => 'jdoe@example.com' }
    end
end

Esta prueba falla de la siguiente manera

  4) Failure:
test_should_create_user(UsersControllerTest)
    [(eval):3:in `each_with_index'
     /test/functional/users_controller_test.rb:15:in `test_should_create_user']:
"User.count" didn't change by 1.
<3> expected but was
<2>.
¿Fue útil?

Solución

Trate de usar flexmock o moka tener todas las instancias de verify_recaptcha devuelven true:

Esta línea en mi aplicación hizo la prueba de crear pase sin problemas en mi aplicación:

flexmock(User).new_instances.should_receive(:verify_recaptcha).and_return(true)

Si se agrega esta línea antes de la "crear" acción tiene lugar debería funcionar.

Además, no he probado este plugin reCAPTCHA, pero esto podría también ser de ayuda para usted: http: //www.fromdelhi. com / 2006/07/21 / carriles-captcha-y-prueba-usando-maqueta objetos /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top