2012-02-24 17 views
5

Estoy tratando de implementar una prueba simple de Jasmine en la que Jasmine probará si se ejecuta algún código al hacer clic en un botón de entrada. Pero no puedo entender por qué el clic no se está disparando? Me doy cuenta de que sí lo haré si solo tengo la función .click() en beforeEach, pero no creo que así sea como se supone que funcione.Jasmine no puede activar el evento click

especificaciones

describe("export citations", function(){ 
    var btn 
    beforeEach(function(){    
    btn= $("input#myButton").eq(0); 
    }); 

    it("should call click function", function() { 
    btn.trigger("click"); 
    expect($("#content").length).toBeGreaterThan(0); 
    }); 
}); 

accesorio

$(function(){ 
    $("input#myButton").click(function(e){ 
    //Run a bunch of code here 
    } 
}); 

Respuesta

3

¿Usted en realidad se agrega un elemento a la DOM en el partido? También te falta a); en el dispositivo para cerrar la devolución de llamada por clic.

Esto funcionó para mí:

describe("export citations", function() { 
    var btn; 
    beforeEach(function() { 
    btn= $("input#myButton").eq(0); 
    }); 

    it("should call click function", function() { 
    btn.click(); 
    expect($("#content").length).toBeGreaterThan(0); 
    }); 
}); 

accesorio

(function() { 
    $("body").html("<input id='myButton' type='button'>"); 

    $("body").html("<div id='content'></div>"); 

    $("input#myButton").click(function() { 
    $("#content").html("<p>Hello</p>"); 
    }); 
})(); 
+0

Cómo/dónde se puede cargar su ¿accesorio? –

+0

Mucho tiempo desde que trabajé en esto, pero creo que esto lo describe: http://testdrivenwebsites.com/2010/07/29/html-fixtures-in-jasmine-using-jasmine-jquery/ – ebaxt

+0

Gracias a grupo :) –

0

creo que su accesorio debe ser así para adaptarse a su caso de prueba

(function() { 
     $("body").html("<input id='myButton' type='button'>"); 

     $("input#myButton").click(function() { 
      $("body").append("<div id='content'>") 
     }); 
    })(); 
Cuestiones relacionadas