【问题标题】:What is the difference between Jasmine “Expect” and Chai “Expect”? Which one is preferred to use?茉莉“期待”和柴“期待”有什么区别?首选使用哪一个?
【发布时间】:2021-03-08 08:56:09
【问题描述】:

我是量角器的新手,在此先感谢回答我问题的人:

  1. 量角器是基于jasmine构建的吗?
  2. 茉莉“期待”和柴“期待”有什么区别?首选使用哪一个?似乎大多数人更喜欢“chai”断言,“chai”有什么优势?

【问题讨论】:

  • 是的,量角器已经与茉莉花包装在一起。我不确定这会持续多久。不久前出现了一个问题,有人提到他们正在研究在未来的版本中解耦 jasmine。我不知道#2 的答案,但我总是只使用茉莉花。如果您使用的是打字稿,如果您在同一个项目中同时使用打字稿,您可能会遇到一些打字问题。就个人而言,我尝试使用尽可能少的依赖项,因为 jasmine 已经带有 Protractor,所以我使用它。这也是他们在文档中推荐的内容。 ¯\_(ツ)_/¯

标签: jasmine protractor chai


【解决方案1】:
  1. Jasmine 包含在 Protractor 安装中
  2. Jasmine 原生支持 promise,但是 Chai
  3. Jasmine 提供的断言 api 比 Chai 少
  4. 您可以将 chai-as-promise 与 Chai 一起使用来支持 Promise
  5. Chai 可以通过 Test Framework 使用任何测试脚本,不限于 Jasmine
// Jasmine expect example
expect(some_ele.getText()).toEqual(some_text)

// Chai without using chai-as-promise
some_ele.getText().then(function(txt){
   expect(txt).to.be(some_text)
})

// Chai use chai-as-promise together
expect(some_ele.getText()).to.be(some_text)

// When use await/async for Jasmine expect
expect(await some_ele.getText()).toEqual(some_text)

// When use await/async for Chai expect and without chai-as-promise
expect(await some_ele.getText()).to.be(some_text)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    相关资源
    最近更新 更多