承诺的柴和柴有什么区别

时间:2016-04-25 18:05:37

标签: protractor mocha chai chai-as-promised

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

3 个答案:

答案 0 :(得分:5)

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);
});

答案 1 :(得分:1)

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

答案 2 :(得分:1)

Chai是一个BDD断言库 - 为您提供常见的关键字,例如assertshould等。

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

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