2012-02-24 23 views
5

Jasmine'in bazı kodların bir giriş düğmesinin tıklatıldığında çalıştırılacağını test eden basit bir Jasmine testi gerçekleştirmeye çalışıyorum. Ancak tıklamanın neden tetiklenmediğini anlayamıyorum? Öncelikle .click() işlevini BeforeEach'a sahip olsaydım, bunun nasıl olacağını varsayalım.Yasemin, click olayını tetikleyemez

gözlük

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); 
    }); 
}); 

fikstürü

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

cevap

3

aslında fikstür DOM bir öğe eklediniz mi? Ayrıca eksiksiniz a); Tıklama geri arama kapatmak için fikstür.

Bu

benim için çalıştı:

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); 
    }); 
}); 

fikstürü

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

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

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

nereye nasıl yükleyebilirim/senin Test Case uyacak şekilde böyle olması gerektiğini düşünüyorum senin Fikstür? –

+0

Uzun zamandır bunun üzerinde çalıştım ama sanırım bunu açıklıyor: http://testdrivenwebsites.com/2010/07/29/html-fixtures-in-jasmine-using-jasmine-jquery/ – ebaxt

+0

Teşekkürler Demet :) –

0

Ben senin fikstürü

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

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