Jasmine无法触发点击事件

Bit*_*eko 5 javascript tdd bdd jquery jasmine

我正在尝试实现一个简单的Jasmine测试,其中Jasmine将测试是否在点击输入按钮时运行某些代码.但我无法理解为什么点击不会触发?我意识到如果我只是.click()在beforeEach中有这个功能,但我不认为这是假设工作的方式.

眼镜

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);
  });
});
Run Code Online (Sandbox Code Playgroud)

夹具

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

eba*_*axt 5

您是否确实向固定装置中的 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);
  });
});
Run Code Online (Sandbox Code Playgroud)

夹具

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

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

  $("input#myButton").click(function() {
    $("#content").html("<p>Hello</p>");
  });
})();
Run Code Online (Sandbox Code Playgroud)