jasmine и jquery-ui - метода effect () не существует - PullRequest
0 голосов
/ 13 января 2011

Это довольно просто.Мой JS просто вызывает:

$("#search_box").focus().effect("highlight",{},3000);

    describe('initialization', function(){
        beforeEach(function(){
            var search_box = $("#search_box");
        });

        it('should initially focus on the search box', function(){
            spyOn(search_box, 'focus');
            wizard._initialize();
            expect(search_box.focus).toHaveBeenCalled();
        });

        it('should initially highlight the search box', function(){
            spyOn(search_box, 'effect');
            wizard._initialize();
            expect(search_box.effect).toHaveBeenCalledWith("highlight", {}, 3000);
        });

    });

focus () работает, но эффект - нет.В нем говорится, что метода effect () не существует, как если бы я не загружал библиотеку jquery-ui.

Я добавил jquery-ui в свой файл jasmine.yml и убедился, что онзагружается бегуном.

Есть предложения?

Ответы [ 3 ]

1 голос
/ 19 апреля 2011

У меня была похожая проблема. У меня все работает, удалив эту строку из файла jasmine.yml моего приложения:

- public/javascripts/**/*.js

Я явно изменил все, чтобы явно включить каждый файл js. Полагаю, нужно быть осторожным с подстановочным знаком.

Надеюсь, это поможет,

- Хосе

0 голосов
/ 27 декабря 2014

Я думаю, вам нужно переместить объявление search_box вне функции beforeEach.

Изменить:

describe('initialization', function(){
    beforeEach(function(){
        var search_box = $("#search_box");
    });
});

На:

describe('initialization', function(){
    var search_box;
    beforeEach(function(){
        search_box = $("#search_box");
    });
});

Если выиспользовал "использовать строгий";отладчик мог бы указать на это.Тем не менее, существуют также проблемы с использованием JQuery с жасминовыми шпионами, о которых у меня сейчас нет времени на подробности.

0 голосов
/ 19 марта 2013

В случае, если кому-то понадобится этот ответ в будущем:

Вы не можете шпионить за методом эффекта следующим образом:

spyOn(search_box, 'effect');

Вы должны следить за методом эффекта следующим образом:

spyOn($.fn, 'effect');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...