2017-01-22 12 views
0

ご覧のとおり、私のテストケースには重複した部分があります。モカ、どのようにテストケースの重複したコードを処理するには?

どうすれば対応できますか?再利用する共通の関数を書くだけですか?

これを処理する方法は、mochaですか?

it('test case 1', function() { 
    var target = { 
     a: 1, 
     b: 1 
    }; 
    var source = { 
     c: 1 
    }; 
    expect(deepMerge(target, source)).to.deep.equal({a: 1, b: 1, c: 1}); 

    //dulplicate 
    expect(target).to.eql(target); 
    expect(source).to.eql(source); 
}); 

it('test case 2', function() { 
    var target = { 
     a: 1, 
     b: 1 
    }; 
    var source = { 
     a: 2, 
     c: 1 
    }; 

    expect(deepMerge(target, source)).to.deep.equal({a: 2, b: 1, c: 1}); 
    //dulplicate 
    expect(target).to.eql(target); 
    expect(source).to.eql(source); 
}); 
//more test cases also have the duplicate part. 
+0

anwserのためhttp://stackoverflow.com/questions/17144197/running-the-same-mocha-test-multiple-times-with-different-data – poushy

答えて

0

いくつかの関数にすべての重複した想定ケースを置き、そのブロックをすべてitブロックで呼び出すことができます。

function duplicateTests(target, source) { 
 
    expect(target).to.eql(target); 
 
    expect(source).to.eql(source); 
 
}; 
 

 
it('test case 1', function() { 
 
    var target = { 
 
     a: 1, 
 
     b: 1 
 
    }; 
 
    var source = { 
 
     c: 1 
 
    }; 
 
    expect(deepMerge(target, source)).to.deep.equal({a: 1, b: 1, c: 1}); 
 

 
    duplicateTests(target, source); 
 
}); 
 

 
it('test case 2', function() { 
 
    var target = { 
 
     a: 1, 
 
     b: 1 
 
    }; 
 
    var source = { 
 
     a: 2, 
 
     c: 1 
 
    }; 
 

 
    expect(deepMerge(target, source)).to.deep.equal({a: 2, b: 1, c: 1}); 
 
    duplicateTests(target, source); 
 
}); 
 
//more test cases also have the duplicate part.

+0

感謝をチェックしてください。私はそれが働くことができることを知っている。私はちょうどこれを行うためのモカの方法があることを知りたいですか? 'beforeEach'のような'フック 'を提供するかもしれませんか? – novaline

関連する問題