2016-07-26 1 views
-1

테스트 사례를 작성하려는 작은 라이브러리를 만들었습니다. 단위 테스트 케이스를 작성하는 것은 이번이 처음입니다.mocha를 사용하여 모듈 패턴이있는 JavaScript 코드 테스트

내 라이브러리는 d3.js를 사용하여 차트를 그릴 수있는 소형 차트 라이브러리입니다. 유닛이 좀 코드를 테스트 시작하는 가장 좋은 방법은 무엇

var graph = (function() { 
var a, b, c; 

function x() { 
    //uses a 
} 

function y() { 
    uses a, b and possibly calls x 
} 

function plotChart() { 
    //uses c; 
}, 

function plotAxis() { 
    //uses a,b 
} 

function validate() { 
    //validates values 
} 

return { 
    createChart: function(options) { 
     //calls validate, 
     //calls plotChart 
     //calls plotaxis 
     . 
     . 
     . 
     . 

    } 
} 

: 그것은 다음과 같은 모듈 은어를 사용하여 작성된 200 라인 코드 (단지 샘플)입니다. a, b, c, plotGraph, plotAxis 등 대부분의 함수는 외부 세계에 노출되지 않는 개인 함수입니다.

플러스는 모카가 좋은 선택입니까? 내 목표는 단위 테스트의 맛을 얻은 다음 깊이 탐구하여 경험을 얻는 것입니다. 제발 제안 해주세요.

+0

누구든지 폐쇄 투표를 위해 의견을 말 하시겠습니까? – beNerd

+0

공개 API로 무엇을 노출하고 있습니까? 테스트를 시작하십시오. 외부 전략은 대개 누가 라이브러리를 사용할 것인지에 대한 관점에서 테스트하는 데 도움이됩니다. – MarcoL

+0

. 그래서 나는 하나의 공개 메소드 'createChart'를 노출하고 있는데, 몇 가지 옵션이 필요합니다. 그래서 개인적인 방법을 테스트 할 필요가 없습니까? – beNerd

답변

0

모카가 적합합니다. 브라우저 상용구에 대해서는 docs을 참조하십시오. 이 작업을 자동화하려면 Karmakarma-mocha 또는 이와 유사한 도구와 함께 사용하는 것이 좋습니다. Mocha에는 포함되어 있지 않으므로 어설 션 라이브러리가 필요합니다. Chai은 인기있는 선택입니다.

Jasmine은 Mocha + Chai와 구문이 비슷합니다. "올인원 (all-in-one)"프레임 워크에 가깝습니다.

describe('graph', function() { 
    describe('method', function() { 
    describe('createChart()', function() { 
     it('should return x', function() { 
     var retval = graph.createChart(); 
     // assert return value 
     }); 

     it('should throw an exception if y', function() { 
     // assert exception thrown when called with some params 
     }); 

     it('should mutate z', function() { 
     // etc. 
     }); 
    }); 
    }); 
}); 

기본 "단위 테스트에 대한 소개를"읽기 제안 튜토리얼 :

(window.graph에 할당 된) 전역 변수를 을한다 가정 할 때, 당신은 재스민이나 모카 중 하나에서 다음과 같은 테스트를 작성할 수 어떤 주장을 할 지 아이디어를 얻을 수 있습니다. 행운을 빕니다!

관련 문제