Come testare le funzioni o il codice all'interno di $ (document) .ready () usando Jasmine?

7

Ho più funzioni e molto codice all'interno di $(document).ready(function()) . Sto usando il gelsomino per testare le funzioni all'interno della funzione ready e il codice all'interno di ready() ma quando i test case descritti sono eseguiti non è in grado di accedere al codice all'interno della funzione ready .

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

Suite di test Jasmine

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

Suggerire cortesemente quale approccio deve essere preso per l'approccio sopra.

    
posta makmak 10.07.2013 - 21:32
fonte

2 risposte

6

nel tuo codice, domready chiama una funzione anonima. Se avessimo un riferimento a questa funzione, potremmo chiamarlo.

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

$(document).ready(onReady);

e nei tuoi test

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

il tuo codice è ora verificabile :) namespacing e moduli sono consigliati per renderlo ancora migliore.

    
risposta data 30.11.2013 - 13:37
fonte
2

Ciò che è all'interno della funzione ready è incapsulato in un ambito separato da tutto ciò che è globalmente.

Metti i casi di test nello stesso ambito per lavorare.

Ci sono altri approcci da adottare, ha a che fare con le chiusure, avvolgendo la funzione anonima (nel gestore di eventi ready), inserendola in una variabile e quindi passandola a pronta .. E poi usando quella variabile per passare alle suite di test. Può essere complesso da spiegare e implementare a qualcuno che non conosce javascript orientato agli oggetti ..

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

testMe è ora definito. Questo ha creato una chiusura. Ho dimenticato i nomi di quelle tecniche, penso di averlo creato ..

comunque ... un eccellente libro da leggere è Javascript efficace, per familiarizzare con buone tecniche javascript. Non è come il tuo solito linguaggio di programmazione

    
risposta data 10.07.2013 - 21:46
fonte

Leggi altre domande sui tag