How do I loop through dynamic test cases in Jest?
I have test cases like the following how do I dynamically create jest test case using it/test
methods.
Here is what I have tried , However it just passes without excuting the test cases in the loop.
const mymodule = require('mymodule');
const testCases = [
{q: [2, 3],r: 5},
{q: [1, 2],r: 3},
{q: [7, 0],r: 7},
{q: [4, 4],r: 8}
];
describe("Test my Math module", () => {
test("test add method", () => {
for (let i = 0; i < testCases.length; i++) {
const { q,r } = testCases[i];
it(`should add ${q[0]},${q[1]} to ${expected}`, () => {
const actual = mymodule.add(q[0] + q[1]);
expect(actual).toBe(expected);
});
}
});
});
There's an in-built way to do this: test.each(table)(name, fn, timeout)
e.g.
test.each([[1, 1, 2], [1, 2, 3], [2, 1, 3]])(
'.add(%i, %i)',
(a, b, expected) => {
expect(a + b).toBe(expected);
},
);
where each inner array in the 2D array is passed as args to the test function.