【问题标题】:How not to run certain codes in BeforeAll for a specific Describe() block in Jasmine如何不为 Jasmine 中的特定 Describe() 块在 BeforeAll 中运行某些代码
【发布时间】:2017-09-18 17:09:51
【问题描述】:

我正在研究 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() {
        //...
});

【问题讨论】:

  • 请添加一些代码来显示您尝试过的内容。一些指向您所查找内容的链接。一些东西表明你已经付出了一些努力来解决这个问题。
  • 改进了文本格式。

标签: javascript jasmine


【解决方案1】:

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

这是有益的,因为它将测试的逻辑清晰地保留在该测试中,而不是在测试文件的其他地方为测试设置条件。

【讨论】:

    猜你喜欢
    • 2014-09-16
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 2021-05-26
    相关资源
    最近更新 更多