Прервать тесты с помощью узла узла
Я пишу модульные тесты для драйвера базы данных. В первом тесте я создаю некоторый объект, который затем намереваюсь использовать позже в тестах. Я хотел бы написать тесты так, чтобы, если этот (решающий) шаг не удался, все остальное просто останавливалось. Я сделал это, но это кажется слишком хакерским... каковы лучшие практики в этом случае?
"create constructors and layers": function( test ){
var self = this;
try {
self.shared.personLayer = new self.Layer( 'people', { name: true, surname: true, age: true } );
test.ok( self.shared.personLayer );
self.shared.personLayerNoDb = new self.LayerNoDb( 'people', { name: true, surname: true, age: true }, self.db );
test.ok( self.shared.personLayerNoDb );
var personLayerOverwriteDb = new self.Layer( 'people', { name: true, surname: true, age: true }, self.db );
test.ok( personLayerOverwriteDb );
self.shared.ranks = new self.Layer( 'ranks', { name: true, number: true } );
test.ok( self.shared.ranks );
} catch( e ){
console.log("Error: couldn't create layers, aborting all tests...");
console.log( e );
console.log( e.stack );
process.exit();
}
test.done();
},
1 ответ
Любой "решающий шаг", необходимый для всех остальных тестов, не является модульным тестом. Предполагается, что модульные тесты не зависят друг от друга и в принципе могут выполняться в любом порядке.
То, что вы ищете, это крючок "До" или "Перед каждым".
Поместите ваш установочный код в setUp
раздел, документированный на узле README