使用量角器时,mocha框架中承诺的chai和chai有什么区别?
答案 0 :(得分:5)
Chai - 测试断言库,它允许您使用expect
,should
等关键字测试您的代码。但是在使用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断言库 - 为您提供常见的关键字,例如assert
或should
等。
Chai as Promised是该库的扩展,专门用于处理带有promise的断言(而不是自己手动解析它们)。