Жасмин не может вызвать событие клика - PullRequest
5 голосов
/ 24 февраля 2012

Я пытаюсь реализовать простой тест Jasmine, в котором Jasmine проверит, запускается ли какой-либо код при нажатии кнопки ввода.Но я не могу понять, почему щелчок не срабатывает?Я понимаю, что так и будет, если у меня просто есть функция .click() в beforeEach, но я не думаю, что так оно и должно работать.

specs

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

Ответы [ 2 ]

4 голосов
/ 27 февраля 2012

Вы действительно добавили элемент в 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 голосов
/ 23 декабря 2013

Я думаю, что ваш прибор должен быть таким, чтобы соответствовать вашему тестовому случаю

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

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