2017-02-25 7 views
0

私は約束の拒否のケースをテストケースにしたいと思います。 TemplateFinder.jsmochaを使用したテストの約束拒否ケース

**I want to make test for this method on promise reject using *mocha* how can i achieve this?** 

var findTemplate = function (template) { 

    return templateFinder.find(templateName) 
     .then((result) => { 
      return result.id; 
     }); 
}; 

2)

var find = function (template) { 
    return knex.where({ 
     internal_name: template, 
    }) 
    .select('external_id') 
    .from('mailing_external_template') 
    .then(function (data) { 
     if (0 === data.length) { 
      return Promise.reject(RangeError('no result for id')); 
     } else { 
      return data[0].external_id; 
     } 
    }); 
}; 

3をquery.js)

Main file to run 

function findTemplate() 
{ 
    templateFinder.findGoodTemplate('good-mail-template'); 
} 

initiateProcess() 
.then(function (fromResolve) { 
    return findTemplate(); 
}) 
.catch(function (e) { 

}); 

をapp.js:ここ

は私のコード

1)ファイルであります私の試行:

it('should throw error if template not found', function() { 

    var findTemplateIdStub = sinon.stub(templateFinder, 'find'); 

    var error = 'my expected error message returned by my function'; 
    findTemplateIdStub.returns(Promise.reject(error)); 

    return templateFinder.findTemplate(templateName) 
     .catch(function(err) { 
     assert.equal(err, error); 
     }); 
    }); 

findTemplateにはキャッチがありません。どうすれば私のテストケースから変数をアサートすることができますか?オリジナルではありません。 (Catchはコードではありませんが、まだ私のテストパスです。)findTemplateのリジェクトケースのテストケースを作るのを助けてください。

答えて

0

findTemplateIdStubは約束を返しますか?その場合は

、あなたはsinon-as-promisedを含むことができ、スタブは以下のようになります。良いケースに悪い場合

findTemplateIdStub.resolves(1234)ため

findTemplateIdStub.rejects('some error')

関連する問題