¿Cómo probar las funciones o el código dentro de $ (document) .ready () usando Jasmine?

7

Tengo varias funciones y mucho código dentro de $(document).ready(function()) . Estoy utilizando jasmine para probar las funciones dentro de la función ready, así como el código dentro de ready() , pero cuando se ejecutan los casos de prueba descritos, no puedo acceder al código dentro de la función ready .

$(document).ready(function () {
    function testMe(){
        testVar = true;
    }
});

conjunto de pruebas de jazmín

describe("test suite", function(){
    beforeEach(function () {
        testme = false
    });
    it("Test Alert Box Message For Change Modal", function() {
        expect(testme).toEqual(true);
    });
});

Sugiera amablemente qué enfoque se debe tomar para el enfoque anterior.

    
pregunta makmak 10.07.2013 - 21:32

2 respuestas

6

en su código, domready llama a una función anónima. Si tuviéramos una referencia a esta función, podríamos llamarla.

var onReady = function(){
   testVar = true;
}

$(document).ready(onReady);

y en tus pruebas

it("Test Alert Box Message For Change Modal", function() {
    var testVar = false;
    onReady() ;
    expect(testVar).toEqual(true);
});

su código ahora es verificable :) espacios de nombre y se recomiendan los módulos para hacerlo aún mejor.

    
respondido por el roo2 30.11.2013 - 13:37
2

Lo que está dentro de la función de listo está encapsulado en un ámbito separado de todo el mundo.

Ponga sus casos de prueba en el mismo ámbito para trabajar.

Hay otros enfoques que se deben tomar, es hacer los cierres, envolver la función anónima (en el controlador de eventos listo), ponerla en una variable y luego pasarla a lista. Y luego usar esa variable para pasar a las suites de prueba. Puede ser complejo explicarlo e implementarlo a alguien que no sepa javascript orientado a objetos ...

var testMe;
$(document).ready(function () {
    testMe=function testMe(){
        testVar = true;
    }
});

testMe ahora está definido. Eso creó un cierre. Olvidé los nombres de esas técnicas, creo que creé la elevación ...

de todos modos ... un excelente libro para leer es Javascript efectivo, para familiarizarse con las buenas técnicas de JavaScript. No es como tu lenguaje de programación habitual

    
respondido por el XWormX 10.07.2013 - 21:46

Lea otras preguntas en las etiquetas