저는 Node를 처음 사용하고 knex와 bookshelf를 사용하는 프로젝트 작업을하고 있습니다. 내 코드를 테스트하는 데 문제가있는 유닛이 조금 있는데, 내가 뭘 잘못하고 있는지 잘 모르겠다.Bookshelf.js 및 knex.js를 이용한 단위 테스트
var VorcuProduct = bs.Model.extend({
tableName: 'vorcu_products'
});
module.exports.VorcuProduct = VorcuProduct
그리고는 DB에 존재하지 않는 경우 VorcuProduct을 저장하는 기능 :
는 기본적으로 I는 다음과 같습니다 모델 (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)
}
})
}
DB를 치지 않고 테스트하는 올바른 방법은 무엇입니까? fetch
을 모의하거나 (테스트에 따라) 정의되지 않은 모델을 반환 한 다음 save
과 동일하게 수행해야합니까? 이것에 대해 재선을 사용해야합니까?
내가 알기로 조금 잃어 버렸으므로 도움이 될 것입니다.
감사합니다.
감사 :
그러나 비교
여기에 기존 코드의 진정한 단위 테스트가 어떻게 보이는지에 대한 필자의 의견입니다. 호기심에서 얼마나 많은 테스트를 실행하고 있습니까? 또한 설정에 상당한 양의 시드 데이터를로드해야합니까? – thebearingedge@thebearingedge 약 1,000 개의 오이 계단이있는 약 70 개의 시나리오를 실행합니다. 나는 각 시나리오에서 60 개의 테이블을 설정하고 찢어 버린다. 인 메모리에 sqlite를 사용하면 절반을 수행하는 데 걸리는 시간이 줄어 듭니다. –