javascript - Jasmine 无法触发点击事件

标签 javascript jquery tdd bdd jasmine

我正在尝试实现一个简单的 Jasmine 测试,其中 Jasmine 将测试某些代码是否在单击输入按钮时运行。但我不明白为什么点击没有触发?我意识到如果我在 beforeEach 中只有 .click() 函数就可以了,但我不认为它应该是这样工作的。

规范

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

最佳答案

您是否真的在 fixture 中向 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>");
  });
})();

关于javascript - Jasmine 无法触发点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9425158/

相关文章:

javascript - 删除表中所有相同 id tr

javascript - 带有文本的 Jquery 选择选项无法正常工作

python - 当我刚刚创建数据存储时,我如何获得 'InternalError: table "dev~guestbook!!Entities"already exists"?

javascript - 来自另一个 Controller 的 Rails : Render a . js.erb?

javascript - 是否有一项免费服务可以自动完成全局所有国家/地区的邮寄地址(街道名称)?

javascript - JS中定义点击指定时间时的 Action

c# - TDD测试数据加载方式

tdd - 作为 "mockist"TDD的从业者,我应该模拟与被测方法在同一类中的其他方法吗?

javascript - 在 Angular-Google-Maps 中添加标记

javascript - 如何初始化ajax请求的jquery函数onSuccess?