2014-08-28 84 views
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); 
    }); 


}); 
+0

好運氣,我一直在打我的頭靠在與BDD同樣的問題在牆上。如果我弄明白了,我會回答一個答案。 – PositiveGuy 2015-07-19 18:32:45

回答

相關問題