Как вы используете Jasmine для тестирования функции щелчка jquery, чтобы узнать, вызывал ли он пользовательский метод? - PullRequest
4 голосов
/ 29 июня 2011

Я пишу Jasmine тест, чтобы определить, что function вызывается методом JQuery click (). Где моя логика неверна? Я шпионю за функцией jquery или пользовательской функцией?

Я получаю сообщение об ошибке:

-ошибка

Expected a spy, but got undefined. in http://localhost:8080/...etc.../jasmine.js (line 1253)

-код

describe("funtionCalled", function() {
it("calls the click() function", function() {
    var cc = new CustomClass();
    spyOn($.fn, "click");
    $( '#fieldID' ).click();
    expect(cc.clickFunction()).toHaveBeenCalled();
   });
});

- проверяемый код

var CustomClass = function(){};

$(document).ready(function(){
    var cf = new CustomClass();

    $( '#fieldID' ).click(function() {  
        cf.clickFunction();
    });
});

CustomClass.prototype.clickFunction = function() {
     //some javascript code
};

Ответы [ 2 ]

6 голосов
/ 14 июля 2011

Насколько я могу судить, у вас здесь две вещи не так.Сначала вы шпионите за неправильным объектом, а затем передаете результат метода clickFunction ожидаемому, а не фактическому методу.

Попробуйте:о шпионах в Жасминовой вики .

1 голос
/ 01 июня 2012

Возможно, вам не хватает помощников Жасмин-Синон, см. https://github.com/froots/jasmine-sinon

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...