Я относительно новичок в Node и работаю над проектом, используя knex и книжную полку. У меня немного блок проблем, проверяющий мой код, и я не уверен, что я делаю неправильно.Единичное тестирование с помощью Bookshelf.js и knex.js
В принципе у меня есть модель (так называемый VorcuProduct), который выглядит следующим образом:
var VorcuProduct = bs.Model.extend({
tableName: 'vorcu_products'
});
module.exports.VorcuProduct = VorcuProduct
И функция, которая экономит VorcuProduct, если он не существует на БД. Довольно просто. Функция, выполняющая это, выглядит так:
function subscribeToUpdates(productInformation, callback) {
model.VorcuProduct
.where({product_id: productInformation.product_id, store_id: productInformation.store_id})
.fetch()
.then(function(existing_model) {
if (existing_model == undefined) {
new model.VorcuProduct(productInformation)
.save()
.then(function(new_model) { callback(null, new_model)})
.catch(callback);
} else {
callback(null, existing_model)
}
})
}
Каков правильный способ проверить это без попадания в БД? Нужно ли мне высмеивать fetch
, чтобы вернуть модель или неопределенный (в зависимости от теста), а затем сделать то же самое с save
? Должен ли я использовать rewire для этого?
Как вы можете видеть, я немного потерян, поэтому любая помощь будет оценена.
Спасибо!
Спасибо за ваш обмен опыта. Из любопытства, сколько тестов вы используете? Кроме того, включает ли установка загрузку значительного количества исходных данных? – thebearingedge
@thebearingedge Я запускаю около 70 сценариев с примерно 1000 шагов огурца. Я настраивал и разбивал по 60 таблиц по каждому сценарию. При использовании sqlite-in-памяти для этого требуется менее половины секунды. –