量角器的spec.js文件中的describe()和it()有什么区别?

Bha*_*ngh 4 testing jasmine angularjs protractor

在量角器的spec.js文件中编写测试用例时,两个字段将显示describe()和it()。它们的确切用途以及何时使用?

// spec.js

describe('Protractor Demo App', function() {
  it('should have a title', function() {
    ..
  });
});
Run Code Online (Sandbox Code Playgroud)

FCi*_*Cin 5

it是一个具有逻辑性的实际测试。describe是一个测试容器,允许您将测试分为多个部分。describe块可以包装作用于应用程序同一部分或具有共同点的测试,例如:

describe('Menu tests', function() {
    it('should open menu', function() {
    });
    it('should select menu', function() {
    });
    it('should close menu', function() {
    });
});
Run Code Online (Sandbox Code Playgroud)

describe公开了几个函数,例如:

  • beforeAll- 在第一次测试之前运行。
  • beforeEach- 在每次测试之前运行。

还有很多。

it不能或至少不应该在其内部包含describe或块,而应该包含块以及辅助块(例如)。itdescribeitbeforeAll


小智 5

通过阅读本有希望的书,您将了解您的答案。

spec.js关于(茉莉花如何测试JavaScript代码的行为驱动开发框架的工作原理)

它有两个主要功能

套房 describe 测试

测试套件首先调用全局Jasmine函数,并用两个参数进行描述:字符串和函数。该字符串是规范套件的名称或标题-通常是正在测试的名称。该函数是实现该套件的代码块。

眼镜

通过调用全局Jasmine函数来定义规范it,该函数像describe接受字符串和函数一样。字符串是规范的标题,函数是规范或测试。规范包含一个或多个测试代码状态的期望。茉莉花中的期望是正确或错误的断言。具有所有真实期望的规格是通过的规格。具有一个或多个错误预期的规范是不合格的规范。

describe("A suite", function() {
  it("contains spec with an expectation", function() {
     expect(true).toBe(true);
  });
});
Run Code Online (Sandbox Code Playgroud)

只是功能

由于describeit块是函数,因此它们可以包含实现测试所需的任何可执行代码。应用JavaScript范围规则,因此套件中的describe任何it块都可以使用中 声明的变量。

有关更多详细信息,您可以查看此链接