2015-12-07 4 views
1

Я пытаюсь получить свой комплект тестов Karma, работающий с Моккой, Чай, Синоном, Чай-как-обещанием и chai-sinon.Карма с Моккой, Чай, Чай-как-обещал и chai-sinon

В настоящее время он создан только с мокко, chai и sinon.

frameworks: ['mocha', 'requirejs', 'sinon', 'chai'] 

Теперь я пытался добавить некоторые дополнительные плагины кармы, а именно карма-Chai-Sinon и карма-Chai-а обещанное. Тогда меняя выше

frameworks: ['mocha', 'requirejs', 'chai-sinon', 'chai-as-promised', 'chai'] 

В моем модульном тестировании у меня есть

expect(stub).to.not.have.been.called(); 

, но это дает мне "TypeError:„Ошибка [объект Object]“не функцию ... Но если я сделаю

expect(stub.called).to.equal(false); 

Работает как и ожидалось.

Я пробовал проверять код плагина кармы, но не могу понять, я ожидал где-то в плагине кармы сказать «chai.use (chaiAsPromised)» и «chai.use (sinonChai)», но они этого не делают. Веб-сайт Karma на самом деле не объясняет, как работают плагины/рамки под капотом.

Может ли кто-нибудь помочь мне настроить это?

Заранее спасибо.

ответ

1

По умолчанию любых утверждений, которые не принимают аргументы должны быть объявлены без скобок:

expect(stub).not.to.have.been.called; 

(. Да, это странно)

Это потому, что в этом случае called функция поглотителя, фактически устанавливает утверждение, когда оно находится , доступ к.

Если вы хотите вызвать эти утверждения как функции с помощью круглых скобок, вы можете использовать плагин как dirty-chaikarma-dirty-chai).

Смежные вопросы