2009-09-07 18 views
6

El escenario es el siguiente. Mi modelo de pedido tiene un after_create que contacta con una puerta de enlace de pago remoto para recuperar una URL de pago. En mis pruebas de Cucumber no quiero realizar esta acción, pero devuelvo una URL arbitraria. Mis pruebas de pepino actuales se ve así:Cómo se burlan/ramal en un modelo pepino prueba

Dado que hay un producto "Producto X" Cuando entro en mis credenciales Y hago clic en "Solicitar ahora" Entonces deba ser redirigida a "URL arbitraria"

El problema es ¿dónde/cómo me aseguro de que mi modelo de pedido establezca la URL correctamente y no contacte con la puerta de enlace de pago remoto?

Respuesta

3

En funciones/parcheado-mono me apoyo/env.rb mi modelo para establecer la URL arbitraria. Esto podría hacerse con Mocha u otra cosa también, pero no tiene sentido en este caso.

En mis pasos que puede comprobar la respuesta de la redirección correcta de esta manera:

Then /^I should be redirected to the payment gateway$/ do 
    response.status.should eql("302 Found") 
    response.location.should eql(Order.last.payment_url) 
end 

Esperanza esto ayuda también para los demás. Todavía me gustaría saber si hay una forma mejor/más limpia de lograr este objetivo.

1

Si entiendo lo que usted está tratando de hacer correctamente, echar un vistazo a FakeWeb.

11

El wiki también tiene algunos tips on stubbing.

+0

[link Actualizado] (https://github.com/cucumber/cucumber/wiki/mocking-and-stubbing-with-cucumber) – Jared

Cuestiones relacionadas