如何不在BeforeAll中为Jasmine中的特定Describe()块运行某些代码

时间:2017-09-18 17:09:52

标签: javascript jasmine

我正在研究Jasmine单元测试规范。 JS文件中有多个describe()块。

BeforeAll中,我只想调用Describe-Block" A"和" C",那我怎么能这样做?逻辑是这样的:

//SampleSpec.js
BeforeAll(function() {
        if(descirbe name !== "B"){
            DoSomething();
        }
});

descirbe("A", function() {
        //...
});

descirbe("B", function() {
        //..
});

descirbe("C", function() {
        //...
});

1 个答案:

答案 0 :(得分:0)

在不了解您的设置的情况下,beforeAll将始终运行。但是你可以创建自己的sharedSetup()功能&只需在AC的顶部调用它,而不是B。如果它是基于promise的,您可以sharedSetup.then()推迟运行其余代码,直到promise得到解决。

这是有益的,因为它可以在测试中清楚地保持测试的逻辑,而不是在测试文件的其他地方进行测试的条件。