Estaba trabajando en pruebas de pepino y me encontré con el problema de que no sé cómo obtener el objeto mundial "esto" fuera de la arquitectura de pepino.
Por ejemplo,
function verifyFunction(){ expect(this.a).toEqual(1); } Given( /^bla bla bla$/, function () { this.a = 1 } ); Then( /^bla bla bla$/, function () { verifyFunction() } );Al ejecutar la prueba de ejemplo como la anterior, mostrará el error No se puede leer la propiedad 'a' de indefinido.
¿Alguna idea sobre cómo resolver este problema?
¡Muchas gracias!
intente usar la sintaxis de ES6:
const verifyFunction = () =>{ expect(this.a).toEqual(1); }Advertencia: solo uso Cucumber con ruby.
Por lo general, al usar funciones de referencias de pasos, debe pasar cosas a la función y recuperar cosas de la función. En ruby, compartirías entre pasos usando un global. Asi que
module StepHelpers def get_foo return 'foo' end def bar(x) puts x end end World StepHelpers Given 'foo' do @foo = get_foo end When 'bar with foo' do # We can access @foo because its defined as a global in a step bar(@foo) endIntenta traducir lo anterior a tu js cukes
nb, las cosas del módulo son para evitar que los métodos ingresen al espacio de nombres global de sus aplicaciones.