2017-08-16 2 views
1

Jestでthorughデイナミステストケースをループするにはどうすればよいですか?デイナミステストケースでルーピングされたジャスト

it/testメソッドを使用してテストケースを作成するにはどうすればよいでしょうか。ここで

しかし、それだけでループ内のテストケースをexcutingせずに渡し、私はを試してきたものです。上記からの私のコメントの上の追加

const mymodule = require('mymodule'); 
    let 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 sub module",() => { 
      for (let i = 0; i < testCases.length; i++) { 
       let item = testCases[i]; 
       let q = item.q; 
       let expected = item.r; 
       it(`should add ${q[0]},${q[1]} to ${expected}`,() => { 
        let actual = mymodule.add(q[0] + q[1]); 
        expect(actual).toBe(expected); 
       }); 
      } 
     }); 

    }); 
+0

1に合格した場合はうまく動作します。だから、肯定的なテストのために必要なものは1つだけです。理想的には、2つの数字が合計と等しいところで1つの正の値が必要で、文字列や何かを渡してエラーをスローするという失敗が必要です。 TL/DR;あなたはすべて同じことをする4つのテストは必要ありません。 ループが動作するためには、ループテストケースを親テストから引き出す必要があります。 – sesamechicken

答えて

2

、これは彼らが、すべての意志を

import jest from 'jest'; 
import { sumModule } from './'; 

const tests = [ 
    {x: 1, y: 2, r: 3}, 
    {x: 3, y: 4, r: 7} 
]; 

describe('Adding method',() => { 
    for(let i = 0; i < tests.length; i++){ 
     it('should add its params',() => { 
     const actual = sumModule(tests[i].x, tests[i].y); 
     expect(actual).toBe(tests[i].r); 
     }); 
    } 
});