У меня возникают трудности с запуском тестов Jquery с помощью плагина jasmine-jquery. Вот шаги, которые я предпринял:
- драгоценный камень установить жасмин
- жасмин инит
- добавьте jquery и jasmine-jquery в папку помощников
- Вот мой репозиторий https://github.com/shenst1/jasminesample
Вот мои характеристики, рекомендованные после этих руководств: https://www.youtube.com/watch?v=3Huh44nsZTw
describe("My Feature", function() {
it("should add numbers", function() {
expect(1+1).toBe(2);
});
});
describe("experimentation", function() {
var elem;
beforeEach(function() {
elem = $('<div id="container"><p>Hello World</p></div>');
});
it("allows us to serach with Css selectors", function() {
expect(elem).toBe('#container');
expect(elem).toContainElement('p');
expect(elem).toEqual('#container');
expect(elem).toEqual('p')
});
});
Первая спецификация проходит, как и ожидалось, но вторые с jquery терпят неудачу со следующими ошибками:
Expected { 0 : HTMLNode, length : 1 } to be '#container'.
Error: Expected { 0 : HTMLNode, length : 1 } to be '#container'.
at stack (http://localhost:8888/__jasmine__/jasmine.js:1293:17)
at buildExpectationResult (http://localhost:8888/__jasmine__/jasmine.js:1270:14)
at Spec.Env.expectationResultFactory (http://localhost:8888/__jasmine__/jasmine.js:484:18)
at Spec.addExpectationResult (http://localhost:8888/__jasmine__/jasmine.js:260:46)
at Expectation.addExpectationResult (http://localhost:8888/__jasmine__/jasmine.js:442:21)
at Expectation.toBe (http://localhost:8888/__jasmine__/jasmine.js:1209:12)
at Object.<anonymous> (http://localhost:8888/__spec__/testSpec.js:12:18)
at attemptSync (http://localhost:8888/__jasmine__/jasmine.js:1510:12)
at QueueRunner.run (http://localhost:8888/__jasmine__/jasmine.js:1498:9)
at QueueRunner.execute (http://localhost:8888/__jasmine__/jasmine.js:1485:10)
TypeError: Object #<Expectation> has no method 'toContainElement'
TypeError: Object #<Expectation> has no method 'toContainElement'
at Object.<anonymous> (http://localhost:8888/__spec__/testSpec.js:13:18)
at attemptSync (http://localhost:8888/__jasmine__/jasmine.js:1510:12)
Похоже, что сопоставители jquery не загружаются должным образом. Похоже, он преобразует объект в строку, а не проверяет элементы html. Я пытался использовать версию jasmine-jquery.js из Support Jasmine v2.0 (версия 1.5.92), но это не удалось с теми же ошибками. Нужно ли мне откатывать версии jasmine для поддержки Jquery, или я просто что-то упускаю из того, как заставить его работать с jquery? Спасибо, Эндрю