2016-04-21 4 views
3
describe('1', function() { 
    beforeEach(function() { 
    // do this before each it EXCEPT 1.5 
    }); 
    it('1.1', function() { 

    }); 
    it('1.2', function() { 

    }); 
    it('1.3', function() { 

    }); 
    it('1.4', function() { 

    }); 
    it('1.5', function() { 
    // beforeEach shouldn't run before this 
    }); 
}); 

itブロック1.5より前に実行されないようにしたいと考えています。どうやってやるの?beforeEachがブロックする前にbeforeEachが実行されないようにするにはどうしたらよいですか?

+0

あなたはおそらく、このスレッドhttp://stackoverflow.com/questions/32723167/how-to-programmatically-skip-a-test-in-mochaより多くの洞察を得ることができますが、答えはchriskelly – samiunn

答えて

2

私はあなたの説明ネスト使用することをお勧めします。オプション1

、例えば:舞台裏

describe('1', function() { 

    describe('1 to 4', function() { 

    beforeEach(function() { 
     // do this before each it EXCEPT 1.5 
    }); 
    it('1.1', function() { 

    }); 
    it('1.2', function() { 

    }); 
    it('1.3', function() { 

    }); 
    it('1.4', function() { 

    }); 
    }); 

    describe('only 5', function() { 
    it('1.5', function() { 
    // beforeEach shouldn't run before this 
    }); 

}); 

は、それが存在する場合は、すべてのitFunctionsのために呼び出されますbeforeEach関数を登録しますについて説明します。オプション2

それ機能


はあなたもbeforeEachが実行されますタイミングを制御するためにクロージャを使うことができるように順番に呼び出されます - しかし、それは少しハックだ - 例えば:

describe('1', function() { 
    var runBefore = true 
    beforeEach(function() { 
    // do this before each it EXCEPT 1.5 
    if (runBefore) { 
     // actual code 
    } 
    }); 
    // functions removed for brevity  
    it('1.4', function() { 
     runBefore = false; 
    }); 
    it('1.5', function() { 
    // beforeEach shouldn't run before this 

    // turn it back on for 1.6 
    runBefore = true; 
    }); 
}); 

関連する問題