所以我有这个超级简单的Chai测试,由于我不了解的原因,该测试一直失败。这是我的代码:
let chaiHttp = require('chai-http');
const helpers = require('../lib/helpers.js');
let chai = require('chai');
let should = chai.should();
chai.use(chaiHttp);
describe('Helper Functions', () => {
it('it should return an array of objects that represent the URL parameters passed in', function() {
const requestURL = {url: '/?designID=54w9G44aphaNHTvKg&labels=true&props=true'};
let parameters = helpers.getQueryParameters(requestURL);
(parameters).should.include.keys(['designID', 'labels', 'props']);
(parameters.designID).should.be.eql('54w9G44aphaNHTvKg');
(parameters.labels).should.be.eql('true');
(parameters.props).should.be.eql('true');
});
});
每次尝试测试时,都会收到错误TypeError: Cannot read property 'include' of undefined
如果我注释掉(parameters).should.include.keys(['designID', 'labels', 'props']);
,一切都会过去。我丝毫不知道是什么原因造成的...
当我使用console.log参数时,这是返回的对象:
{
designID: '54w9G44aphaNHTvKg',
labels: 'true',
props: 'true'
}
更新
所以当我将行更改为:
(JSON.parse(JSON.stringify(parameters))).should.have.keys(['designID', 'labels', 'props']);
一切正常...是否有某种功能/错误不允许chai读取JSON,除非使用正确的双引号对其进行格式化?