2012-10-18 5 views
3

Node.js 단위 테스트에서 구동되는 데이터를 만드는 방법은 무엇입니까 unit tests?Node.js에서 데이터 기반 테스트를 만드는 방법

예를 들어 서로 다른 데이터 집합을 사용하여 여러 단위 테스트에서 다시 사용하려는 function/method이 있습니다. 나는 nodeunit, vows, whiskey, qunit, expresso를 들여다 보았다. 하지만이 기능을 구현하는 방법을 찾을 수 없었습니다.

내가 여러 테스트에서 그대로 함수를 호출보고, 그러나 이것은이기보다는 unittest

이유, 그것은 각각의 반복에서 데이터를 선택하고 실행하는 루프에서 일반적인 method를 사용하지 않은 , 적어도 1000 행의 매개 변수화 된 데이터를 작성했습니다.이 데이터는 unittest으로 작성합니다. 분명히 나는 ​​물리적으로 1000 unittests을 쓰는 것을 계속할 수 없다.

누구나 위의 목표를 달성 할 수있는 방법을 알려주십시오.

+0

"매개 변수가있는 데이터의 행"을 정의하십시오. 당신은 객체 리터럴이나 JSON 문자열의 배열을 말하는 건가요? – therealklanni

답변

3

는 매개 변수 퀸트를 실행할 수 있습니다 qunit의 부가 기능은 https://github.com/AStepaniuk/qunit-parameterize


그래서 당신이 테스트 데이터시험 방법을 분리하고 다른 데이터 세트에 대한 동일 시험 방법을 실행할 수있는 테스트가있다.

2

이 게시물은 꽤 오래된 게시물이지만,이 문제는 직접적으로 발생했습니다. 그리고 다른 주석 (qunit-parameterize)이 참조하는 플러그인을 사용하지 않으면 QUnit에 대한 깨끗한 해결책을 찾을 수 없습니다. 솔직히, 나는 플러그인을 내 회사의 프로젝트와 통합하는 방법을 알아 내지 못했고 약 1 시간 후에 포기했다.

그냥 (필요한 경우, 예상 출력), 배열을 반복하여 입력을 배열을 정의하고 콜백에서 QUnit 테스트를 정의

이 내가 그것을 해결 결국 방법입니다! 슈퍼 간단하지만, 정말,하지만 아주 잘 작동했습니다.

const testCases = [ 
    { input: "01/01/2015", expected: "2015-01-01" }, 
    { input: "09/25/2015", expected: "2015-09-01" }, 
    { input: "12/31/2015", expected: "2015-12-01" } 
]; 

testCases.forEach(testCase => { 
    QUnit.test("gets first of month", 
    () => { 
     const actual = new classUnderTest().getFirstOfMonth(testCase.input); 
     strictEqual(actual, testCase.expected); 
    }); 
}); 

QUnit이 중첩 된 것처럼 테스트를 발견했는지는 확실치 않지만 잘되었습니다.

즐기십시오!