摩卡假阴性结果

时间:2016-03-21 20:44:55

标签: javascript testing mocha

我正在测试一个根据传入的用户名和密码生成凭据的函数:

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他们是完全相同的。为什么摩卡会抛出错误?

1 个答案:

答案 0 :(得分:1)

expect(...).to.equal测试对象是否严格相等(与===运算符一样)。在javascript中,具有相同属性和值的对象不相等:

({ prop: 'value' }) === ({ prop: 'value' }); // false

您可以使用expect(...).to.eql查找对象是否等于:

expect(creds).to.eql(expectedCreds);

注意:我想你使用chai断言库。