Ошибка Jasmine — ожидаемое событие [object Object] было инициировано в .div

Я использую Jasmine и Jasmine-JQuery.

Мой код Жасмин:

it("comp move resulted in an X", function() {
    var spyEvent = spyOnEvent('.div', 'click');
    $('.div').click();
    expect('click').toHaveBeenTriggeredOn('.div');
    expect(spyEvent).toHaveBeenTriggered();
});

мой вывод Жасмин:

Ожидаемое событие [object Object] должно быть инициировано в .div

-а также-

Ожидаемый клик по событию был инициирован в Div

Я почти дословно скопировал это из руководства по Jasmine-JQuery.

Кажется, я не могу понять, почему мой тест не работает, несмотря на то, что у меня почти идентичный код из документации. Если у кого-то есть подобные проблемы, проверьте этот похожий вопрос: Ошибка в Jasmine — Ожидаемый клик по событию был инициирован для #DIV_ID. Я не отвечаю на свой, но он может ответить на ваш.

Я не уверен, помогает ли это понять, почему это происходит, но в моем файле spec-runner.js и моем файле app.js есть этот фрагмент кода:

console.log($('.div').text());

мой HTML:

<div id="1" class="div">X</div>

внутри spec-runner.js консоль печатает ''

а в app.js консоль печатает «X»

Спасибо за помощь!


person Jordan Hammond    schedule 29.04.2015    source источник


Ответы (1)


Тогда кажется, что вы неправильно загрузили свои HTML-фикстуры.

Этот тест ниже проходит в этом jsfiddle и повторяет вашу ошибку, если закомментированы загрузочные приборы.

beforeEach(function() {
    setFixtures('<div id="1" class="div">X</div>');
});


it("comp move resulted in an X", function() {
    var spyEvent = spyOnEvent('.div', 'click');
    $('.div').click();
    expect('click').toHaveBeenTriggeredOn('.div');
    expect(spyEvent).toHaveBeenTriggered();
});
person Nicholas Murray    schedule 29.04.2015
comment
Спасибо за ответ! Этой ошибки не было в моем фактическом коде, я менял код для этого вопроса на «.div» из моего конкретного класса, который у меня был в моем фактическом коде. Я отредактировал этот вопрос, чтобы учесть эту опечатку. - person Jordan Hammond; 29.04.2015
comment
Но ваш комментарий поднимает хороший вопрос. Это должно быть что-то большее, чем мой код. - person Jordan Hammond; 29.04.2015
comment
Завтра я собираюсь спросить некоторых людей с работы, почему это происходит, потому что я думаю, что это связано с моими версиями jQuery и файловой структурой. Когда я это сделаю, я вернусь и отследю, чтобы объяснить это для будущих пользователей. Спасибо за помощь Николаю! - person Jordan Hammond; 29.04.2015
comment
Я думаю, это связано с тем, как вы загружаете свои html-фикстуры. - person Nicholas Murray; 30.04.2015