Einheitentest mit Bookshelf.js und knex.js

Ich bin relativ neu bei Node und arbeite an einem Projekt mit knex und bookshelf. Ich habe ein bisschen Probleme beim Testen meines Codes und bin mir nicht sicher, was ich falsch mache.

rundsätzlich habe ich ein Modell (VorcuProduct), das so aussieht:

var VorcuProduct = bs.Model.extend({
    tableName: 'vorcu_products'
});

module.exports.VorcuProduct = VorcuProduct

Und eine Funktion, die ein VorcuProduct speichert, wenn es in der DB nicht vorhanden ist. Ziemlich einfach. Die Funktion sieht so aus:

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)
        }
    })
}

Welche ist der richtige Weg, um dies zu testen, ohne die DB zu treffen? Muss ich @ verspottfetch, um ein Modell oder ein undefiniertes Modell (je nach Test) zurückzugeben, und machen Sie dasselbe mitsave? Soll ich dafür rewire verwenden?

Wie Sie sehen können, bin ich ein bisschen verloren, daher wird jede Hilfe geschätzt.

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage