3
我試圖使用摩卡/柴使用BDD風格的單元測試。不知道從哪裏開始。以下是核心代碼結構。假設getTemplates是一個Ajax調用,我如何處理應用程序的不同階段。即在init函數中觸及sh.setTemplates()之前,它已經經歷了很少的條件。如何單元測試這些條件?如何使用Mocha Chai組織單元測試BDD的代碼?
// Javascript
function myFunc(id){
var mf = this;
mf.id = id;
mf.init = function(){return init()};
mf.isIdValid = function(){return isIdValid()};
mf.setTemplates = function(){return setTemplates};
mf.getTemplates = function(){return getTemplates};
// Init
mf.init();
///////////////////////
function init(){
if(!id){
return false;
}
if(!sh.isIdValid()){
return false;
}
sh.setTemplates();
}
///////////////////////
function setTemplates(){
getTemplates(function(callBackTemplate){
if(!callbackTemplate){
return false;
}
// inject to dom
});
}
///////////////////////
// Async call
function getTemplates(){
return '<div>Test</div>';
}
}
///////////////////////////////////////
/////////////////////////////////////////
TEST JS Mocha/Chai
var expect = chai.expect;
describe('myFunc Class', function(){
var mf;
before(function(){
mf = new myFunc(1);
});
describe('mf.init()', function(){
it('should not result false', function(){
var result = mf.init();
expect(result).to.not.equal(false);
});
});
好運氣,我一直在打我的頭靠在與BDD同樣的問題在牆上。如果我弄明白了,我會回答一個答案。 – PositiveGuy 2015-07-19 18:32:45