Совместимость Jasmine 2.0 с Jasmine-Jquery

У меня возникают трудности с запуском тестов Jquery с помощью плагина jasmine-jquery. Вот шаги, которые я предпринял:

  1. драгоценный камень установить жасмин
  2. жасмин инит
  3. добавьте jquery и jasmine-jquery в папку помощников
  4. Вот мой репозиторий 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? Спасибо, Эндрю


person Andrew Shenstone    schedule 13.01.2014    source источник


Ответы (1)


я поддерживаю jasmine jquery, я только что добавил поддержку jasmine v2 несколько минут назад. https://github.com/velesin/jasmine-jquery/

person travisjeffery    schedule 13.01.2014