Я использую grunt-contrib-jasmine
для тестирования своих модулей AMD. Из коробки кажется, что тесты влияют друг на друга.before- and afterEach утечка в другие тесты
Выход не разделяет тесты по файлам. Это можно проверить, зарегистрировав что-то в тестах beforeEach
. Тот же обратный вызов выполняется для всех тестовых файлов во всех тестах.
Как я могу сделать тесты изолированными от eachother, то есть разделенными тестовыми спецификациями? Единственное решение - добавить еще один уровень гнездования?
хрюкать конфигурации
options: {
specs: 'test/specs/unit/**/*spec.js',
keepRunner: true,
template: require('grunt-template-jasmine-requirejs'),
templateOptions: {
requireConfig: requireConfig
}
}
sample1.spec.js:
define(['Squire', 'sinon'], function(Squire, sinon){
'use strict';
var sut,
injector,
fakeServer;
beforeEach(function(done){
fakeServer = sinon.fakeServer.create();
console.log('create fake server'); // this is logged for all test files
injector = new Squire();
injector.require(['core/http-service'], function(httpService) {
sut = httpService;
done();
});
});
afterEach(function(){
fakeServer.restore();
injector.remove();
});
it('', function(){
expect(1).toBe(1);
});
});
Вы вложенности больше никаких тестов, кроме примера вы находитесь показывая здесь? –
Существует несколько тестовых файлов 'x.spec.js' с 1-2 уровнями' describe() '. Мне действительно нужно иметь _all_ мои тесты в той же спецификации, чтобы этот плагин работал? – Johan
Возможно, вы используете 'beforeEach' или' afterEach' в описании, который содержит вложенные 'описать', ожидая, что они будут влиять только на внутренний 'описать'? Может показаться очевидным, но стоит проверить. –