我正在测试一个根据传入的用户名和密码生成凭据的函数:
generateCredentials(username, password) {
return {
username: username,
password: password
};
}
这是我的测试:
describe('#generateCredentials(username, password)', function() {
it('creates a JSON object with the passed in arguments', function() {
var creds = generateCredentials('user', 'pass');
var expectedCreds = { username: 'user', password: 'pass' };
expect(creds).to.equal(expectedCreds);
});
});
我收到错误:
AssertionError: expected { username: 'user', password: 'pass' } to equal { username: 'user', password: 'pass' }
我认为预期和实际返回的内容没有任何区别。我console.log
creds & expectedCreds
他们是完全相同的。为什么摩卡会抛出错误?
答案 0 :(得分:1)
expect(...).to.equal
测试对象是否严格相等(与===
运算符一样)。在javascript中,具有相同属性和值的对象不相等:
({ prop: 'value' }) === ({ prop: 'value' }); // false
您可以使用expect(...).to.eql
查找对象是否等于:
expect(creds).to.eql(expectedCreds);
注意:我想你使用chai断言库。