【问题标题】:What is the difference between describe() and it() in spec.js file in protractor?量角器中spec.js文件中的describe()和it()有什么区别?
【发布时间】:2017-09-12 07:55:53
【问题描述】:

在量角器的 spec.js 文件中编写测试用例时,2 个字段显示 describe() 和 it()。它们到底有什么用,什么时候用?

// 规范.js

describe('Protractor Demo App', function() {
  it('should have a title', function() {
    ..
  });
});

【问题讨论】:

    标签: angularjs testing jasmine protractor


    【解决方案1】:

    希望通过阅读本文,您会知道自己的答案。

    spec.js 关于(Jasmine 一个用于测试 JavaScript 代码的行为驱动开发框架如何工作)

    它有两个主要功能

    套件 describe 您的测试

    测试套件从调用全局 Jasmine 函数开始 用两个参数描述:一个字符串和一个函数。字符串是一个 规范套件的名称或标题 - 通常是正在测试的内容。这 函数是实现套件的代码块。

    规格

    通过调用全局 Jasmine 函数 it 来定义规格,其中, 比如describe 接受一个字符串和一个函数。字符串是标题 规范和功能是规范或测试。一个规范包含一个 或更多测试代码状态的期望。一个期待 Jasmine 中的断言是真或假。规格与 所有真正的期望都是合格的规格。具有一个或多个错误的规范 期望是一个失败的规范。

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

    只是函数

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

    更多详情可以看this link

    【讨论】:

    • 两者之间的逻辑区别是什么?因此,describe 测试组件的一部分,it 测试describe 组件部分引用的功能。我理解正确吗?
    【解决方案2】:

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

    describe('Menu tests', function() {
        it('should open menu', function() {
        });
        it('should select menu', function() {
        });
        it('should close menu', function() {
        });
    });
    

    describe 公开了几个函数,比如我们:

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

    还有更多。

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

    【讨论】:

      【解决方案3】:

      它是 BDD 接口(行为驱动开发)。

      describe 用于描述动作。顶级描述可用于用一个可以被 grepped 的单词来描述整个套件。

      describe("getUser", function() {
        ...
      });
      

      it 块只包含在闭包范围内定义的对象的断言。

      it("should have status code 200", function() {
        assert.equal(res.statusCode, 200, "statusCode is not 200")
      });
      

      【讨论】:

      • 我的疑问很清楚。谢谢你,但我还有一个问题是,我们最多可以在 describe 中写多少 it()?
      【解决方案4】:

      据我了解,describe 是对您的功能的描述,it 是您的步骤和对功能的期望。

      这里更好地举例说明:https://docs.angularjs.org/guide/e2e-testing

      【讨论】:

        猜你喜欢
        • 2015-11-10
        • 2021-02-20
        • 1970-01-01
        • 2018-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-27
        • 1970-01-01
        相关资源
        最近更新 更多