私はjavascriptの初心者です。私はproxyquireを使用して基本的な単体テストを書くことを試みています。以下のコードのために。async.parallelのテストを書く。
ファイルA:
const modA=require('./modA');
const modB=require('./modB');
const async=require('async');
module.exports=function(a,b,callback){
async.parallel([
function(callback){
// db call
modA(a,b,callback);
},
function(callback){
// db call
mobB(a,b,callback);
}
],
//not able to test code
(err,res){
//do something
});
}。ファイルAの
ユニットテストは、以下のようになります。
const proxyquire=require('proxyquire');
function modaAStub(a, b, callback) {
return (null, modAresponse);
}
function modaBStub(a, b, callback) {
return (null, modaBresponse);
}
describe('test suite',() => {
it('test: should return results', (done) => {
const fileA = proxyquire('../../fileA', {
'./modA': modaAStub,
'./modB': modaBStub
});
fileA(someinput1,someinput2);
done();
});
});
問題は、私は「//何かを行う」を持っているFILEAでのコードの一部をテストする方法を見つけ出すことができません、です。
任意のポインタ/コードを理解してください。
ありがとうございました。
私は混乱しています。私はfileAのテストを書こうとしています。ファイルAを変更した場合、私は実際のコードを変更しています。何か不足している可能性があります。 – user1948304
私は実際にあなたがテストしようとしていることを理解していません - 理論的には、テストは.parallel関数が正しい出力をコールバックに返すことを検証する必要があります。コールバックを別々にテストしたい場合、それをパラレルロジックの一部にする必要はありません。入力を入力として擬似するだけです。 – Josh
あなたはその入力を入力として擬似的に擬似することができます - これについてもっと詳しく説明できますか?問題はmodA、modBはdbコールです。模擬結果だけを検証してください。これは、//何かでロジックをテストすることです。私は非同期自体の実際の実行を望んでいません。 – user1948304