Запустите jsTestDriver в WebStorm для Жасмин + Магистраль

Я пишу тесты в Jasmine для приложения Backbone и хочу знать, какую часть кода покрывают мои тесты. Для этой цели я хочу использовать jsTestDriver. Но у меня есть проблема: я создал файл конфигурации и добавил туда все ресурсы, но при запуске теста методы Backbone не определяются. Это мой конфигурационный файл:

server: http://localhost:9876

load:
  - lib/jasmine-1.3.1/jasmine.js
  - lib/jasmine-jquery.js
  - lib/JasmineAdapter.js
  - lib/sinon-1.5.2.js
  - cordova-2.2.0.js
  - libs/jquery-1.8.2.min.js
  - libs/underscore-min.js
  - libs/backbone-min.js
  - libs/lazyload-min.js
  - core/js/core.js
  - index.js

test:
  - spec/test.js

Порядок такой же, как в файле SpecRunner. Это мой тестовый файл:

describe("Attributes", function(){
    it("Test", function() {
        c = new Cars;
        expect(c.attributes.StartDate).toBeDefined();
        expect(c.attributes.StartDate).toBeDefined();
    })
});

Cars является моделью Backbone, и эта модель имеет атрибут по умолчанию StartSate. В моем тесте я хочу проверить, что этот атрибут определен. И, конечно, ошибка в WebStorm:

TypeError: TypeError: Cannot read property 'attributes' of undefined
TypeError: Cannot read property 'attributes' of undefined
           at null.<anonymous> (spec/test.js:10:21)

1 ответ

Я думаю, что лучше использовать has метод объекта модели для проверки атрибута, вместо проверки attributes имущество:

describe("Attributes", function(){
    it("Test", function() {
        c = new Cars;
        expect(c.has("StartDate")).toBe(true);
    })
});

Таким образом, вы можете добавить неявную логику в модель, которая может переопределить has метод. Кроме того, вы не указали, как вы расширили модель для создания Cars учебный класс. Вы указали значения по умолчанию?

Другие вопросы по тегам