私はNodeには比較的新しいので、knexとbookshelfを使ってプロジェクトを進めています。私は自分のコードをテストするのに少し問題があります。私は何が間違っているのか分かりません。Bookshelf.jsとknex.jsを使用したユニットテスト
var VorcuProduct = bs.Model.extend({
tableName: 'vorcu_products'
});
module.exports.VorcuProduct = VorcuProduct
そして、それはDBに存在しない場合VorcuProductを節約機能:
は基本的に私はこのようになりますモデル(VorcuProductと呼ばれる)を持っています。非常に簡単です。 DBを押すことなくこれをテストするための正しい方法です
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
と同じですか?私はこれに再配線を使うべきですか?
ご覧のとおり、私は少し失われているので、どんな助けにも感謝します。
ありがとうございます!
ありがとう:
しかし、比較のため
は、ここでは、既存のコードの真のユニットテストはどのように見えるかが私の感想です。好奇心の中で、いくつのテストを実行していますか?また、セットアップにはかなりの量のシードデータをロードする必要がありますか? – thebearingedge@thebearingedge私は合計約1,000のキュウリのステップで約70のシナリオを実行します。私はそれぞれのシナリオで60台のテーブルをセットアップして解体しました。メモリ内のsqliteでは、それを実行するのに0.5秒もかかりません。 –