4

使用量角器时,在 mocha 框架中承诺的 chai 和 chai 有什么区别?

4

3 回答 3

6

Chai - 测试断言库,它允许您使用诸如等关键字测试您的代码expectshould但是在使用 Chai 时,您必须注意承诺。例如

var expect = require('chai').expect;

it('should display correct tile', function() {
  var blah = 'foo';

  var title = browser.getTitle();

  return title.then(function(actualTitle) {
    expect(actualTitle).to.equal(expectedTitle);
  });
});

另一方面,如果你按照承诺使用 chai,那么你不需要明确地处理承诺。这可以在Chai as promised图书馆的帮助下完成。例如;

var chai = require('chai');
var expect = chai.expect;

var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);

it('should display correct title', function() {

  var actualTitle = browser.getTitle();

  return expect(actualTitle).to.eventually.equal(expectedTitle);
});
于 2016-04-25T18:24:04.283 回答
3

Chai 是一个 BDD 断言库 - 为您提供常用关键字,例如assertorshould等​​。

Chai as Promised 是该库的扩展,专门用于处理带有 Promise 的断言(而不是自己手动解决它们)。

https://github.com/domenic/chai-as-promised/

于 2016-04-25T18:18:58.370 回答
1

它可以帮助您测试使用 Promises 的代码。这些可能很难测试,因为它们依赖于要执行的回调并且通常是异步的。这篇文章可能会对您有所帮助:http ://www.sitepoint.com/promises-in-javascript-unit-tests-the-definitive-guide/

于 2016-04-25T18:15:08.253 回答