Задать вопрос
DarthJS
@DarthJS

Как правильно настроить Jasmine Unit testing?

Всем привет! Только приступил к тестам с использованием Jasmine и столкнулся с ситуацией: как тестировать инфы и книг валом, а как правильно подключить не до конца разобрался.

На примере своего тестового проекта:

src /
----/ backend
----/ frontend


Как указано в доках Jasmine, ставлю глобально , потом инициализирую дерикторию:
jasmine init в папке frontend, так как решил начать с неё.

Получаю папку spec, в которой собственно создаю файл теста, например test.spec.js.

Собственно понимаю, что нужны еще зависимости прописать, но что куда непонятно.

Хелп плыз кто можем.
  • Вопрос задан
  • 775 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
voidnugget
@voidnugget
Программист-прагматик
Сначала происходит загрузка boot.js или node_boot.js - там в window или global пишутся все методы jasmine интерфейса. Типа вот так
'use strict';

var jasmineRequire = require('jasmine-core/lib/jasmine-core/jasmine');

var jasmine = jasmineRequire.core(jasmineRequire);
window.jasmine = jasmine;

jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000;

var env = jasmine.getEnv();
var jasmineInterface = jasmineRequire.interface(jasmine, env);

function extend(destination, source) {
  for (var property in source) {
      destination[property] = source[property];
  }

  return destination;
}

extend(window, jasmineInterface);

Потом идёт добавление репортера, ну или можно написать свой, под конкретные задачи...

Инициализация под node.js отличается лишь ConsoleReporter'ом, в браузерной используется HtmlReporter.

После инициализации в window / global уже есть все it describe expect барахло, и можно писать спеки,
для их запуска просто делается
jasmine.getEnv().execute();

Там для ноды отдельно есть "удобная" обёртка для ленивых...
Если глянуть исходники, то в принципе должно быть понятно по основным методам
showColors - отображать ли разноцветные сообщения, форточки не умеют
addSpecFile - добавить файлик спеки
addReporter - добавить репортер
configureDefaultReporter, он же ConsoleReporter
addMatchers не помню
loadSpecs - просто require спеков
loadHelpers - просто require хэлперов
loadConfigFile - загрузка конфига
loadConfig - загрузка конфига с объекта
addSpecFiles - добавить кучу файлов спек
onComplete - вызвать callback по завершению
stopSpecOnExpectationFailure - прервать выполнение тестов если возникает исключение

В принципе
var Jasmine = require('jasmine');
var jasmine = new Jasmine();

jasmine.loadConfig({
    spec_dir: 'tests',
    spec_files: [
        'requests/**/*.js'
    ],
});

// или jasmine.loadConfigFile('spec/support/jasmine.json');

jasmine.configureDefaultReporter({
    showColors: false // если это форточки
});

jasmine.execute();

Для запуска тестов в node.js будет достаточно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы