簡體   English   中英

如何使用Mocha Chai組織單元測試BDD的代碼?

[英]How to organize code for unit testing BDD using Mocha Chai?

我嘗試使用BDD風格使用Mocha / Chai進行單元測試。 不知道從哪里開始。 以下是核心代碼結構。 假設getTemplates是一個ajax調用,我該如何處理應用程序的不同階段。 對於ie在init函數中遇到sh.setTemplates()之前,它已經經歷了幾個條件。 如何對這些條件進行單元測試?

// 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);
    });


});

如何對這些條件進行單元測試?

使用以下過程:

  • 創建分支函數
  • 將斷言放在分支函數中
  • 使用variant作為參數
  • 用truthy值調用一次
  • 用假值再次調用它

參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM