Запустите 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
учебный класс. Вы указали значения по умолчанию?