2012-02-24 23 views
5

Jasmineが入力ボタンをクリックしてコードを実行しているかどうかをテストする簡単なJasmineテストを実装しようとしています。しかし、クリックがトリガーしていない理由がわかりません。 beforeEachに.click()という機能があるだけだとわかりますが、それは動作するとは思われません。Jasmineはクリックイベントをトリガーできません

スペック

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

フィクスチャ

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

答えて

3

は、あなたが実際に固定具にDOMに要素を追加したことがありますか?またあなたは欠けている);クリックコールバックを閉じます。

これは私の仕事:

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

フィクスチャ

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

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

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

どのように/あなたをロードするかに合わせて、このようにすべきだと思います治具? –

+0

私はこれに取り組んで以来、長い時間が、これはそれがそれを記述すると思う:http://testdrivenwebsites.com/2010/07/29/html-fixtures-in-jasmine-using-jasmine-jquery/ – ebaxt

+0

ありがとう束ねる:) –

0

を私はあなたのフィクスチャは、テストケース

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

     $("input#myButton").click(function() { 
      $("body").append("<div id='content'>") 
     }); 
    })(); 
関連する問題