[javascript] Mocha에서 동적으로 테스트를 생성하는 방법은?
Mocha는 describe()와 it() 함수를 사용하여 테스트 스위트와 테스트 케이스를 작성합니다. 하지만 때로는 테스트 케이스를 동적으로 생성해야할 수도 있습니다. 이를 위해 Mocha에서는 두 가지 접근 방법이 있습니다.
- describe()와 it() 함수를 사용한 동적 테스트 생성
const assert = require('assert'); function generateTests(data) { data.forEach((testCase) => { const { input, expected } = testCase; describe(`Test Case: ${input}`, () => { it('should return the expected result', () => { const result = // test logic here assert.equal(result, expected); }); }); }); } const testData = [ { input: 1, expected: 2 }, { input: 3, expected: 6 }, // more test data ]; generateTests(testData);
위의 예제는 generateTests() 함수를 사용하여 testData 배열에 있는 각 test case 별로 describe()와 it() 함수를 동적으로 생성합니다. 각 테스트 케이스는 입력값과 기대 결과를 가지고 있으며, it() 함수는 테스트 로직과 기대 결과를 비교하는 assert 문을 포함합니다.
- 동적으로 it() 함수를 생성하여 테스트 생성
const assert = require('assert'); function generateTests(data) { data.forEach((testCase) => { const { input, expected } = testCase; it(`Test Case: ${input}`, () => { const result = // test logic here assert.equal(result, expected); }); }); } const testData = [ { input: 1, expected: 2 }, { input: 3, expected: 6 }, // more test data ]; generateTests(testData);
위의 예제는 generateTests() 함수를 사용하여 testData 배열에 있는 각 test case 별로 it() 함수를 동적으로 생성합니다. describe() 함수를 사용하지 않고 직접 it() 함수를 만들어 사용할 수 있습니다.
위의 두 가지 방법을 사용하여 Mocha에서 동적으로 테스트를 생성할 수 있습니다. 이를 통해 테스트 코드의 재사용성과 유연성을 높일 수 있습니다.