У меня есть библиотека, написанная для узла. Он содержит кучу кода, который можно использовать для нескольких проектов. Я хотел бы написать несколько тестов для этого, используя Mocha, однако я не знаком с тем, как правильно его протестировать.Тестирование библиотеки в узле
Например, код в одном файле в проекте под названием databaseManager.js
экспортируется следующим образом:
module.exports = {
// properties
connections: connections,
// functions
loadConnections: loadConnections,
getDefaultConnection: getDefaultConnection,
clearAllConnections: clearAllConnections
};
Как вы можете предсказать, loadConnections()
проверяет и добавляет один или несколько соединений, как когда-то, что может быть достигнуто с помощью connections
Недвижимость.
В моем тестовом файле, I require(databaseManager)
. Но для каждого теста it
я хотел бы иметь «свежий» экземпляр для тестирования добавления одного или нескольких хороших или плохих объектов конфигурации. Тем не менее, требуется кэшировать файл, так что каждый тест добавляет к тому же «singleton», создавая ложноположительные ошибки.
Например:
describe('Database Manager Tests', function() {
let singleValidConfig = {
name: "postgresql.dspdb.postgres",
alias: "pdp",
dialect: "postgres",
database: "dspdb",
port: 5432,
host: "localhost",
user: "postgres",
password: "something",
primary: false,
debugLevel: 2
};
it('load 1', function() {
(function() { dbman.loadConnections(singleValidConfig, true); }).should.not.throw();
console.log('load 1', dbman);
});
it('load 2', function() {
let result = dbman.loadConnections(singleValidConfig, false);
result.should.be.true;
console.log('load 2', dbman);
});
});
Один потерпит неудачу, потому что они оба добавить один и тот же конфигурации к одному экземпляру dbman
, которая охраняется против. Как я могу убедиться, что у каждого it
есть чистая недвижимость connections
?
Вы можете использовать крюк 'before' для настройки среды тестирования. Вы можете использовать одну функцию 'before' для каждой функции' describe', а также 'after' для очистки среды тестирования. – Marcs