测试 GET 端点,使用 mocha 和 chai,AssertionError
Testing GET endpoint, using mocha and chai, AssertionError
我正在尝试测试我的 GET 端点,但出现此错误:
Uncaught AssertionError: expected { Object (_bsontype, id) } to equal '5be02038cf97ed1cc47feb8a'
我的测试是:
it("it should GET a user by the given id", done => {
let newUser = new User({
email: "bloggs@test.com",
givenName: "Willmott",
familyName: "Bloggs"
});
newUser.save((err, newUser) => {
let { _id: id } = newUser;
chai
.request(app)
.get("/users/" + id)
.send(newUser)
.end((err, res) => {
let { body: { _id } } = res;
expect(id).to.equal(_id);
done();
});
});
});
如何才能让 expect(id).to.equal(_id);
通过?
看起来其中一个是对象 (_id
),另一个是字符串 (id
)。您可能不想比较整个对象,而是比较对象上的某些 属性。考虑到这看起来像是使用 bson 对象的数据库查找,我猜你可以调用 toString()
吗?至少,如果这实际上是 MongoDB UserId:
expect(id).to.equal(_id.toString());
我正在尝试测试我的 GET 端点,但出现此错误:
Uncaught AssertionError: expected { Object (_bsontype, id) } to equal '5be02038cf97ed1cc47feb8a'
我的测试是:
it("it should GET a user by the given id", done => {
let newUser = new User({
email: "bloggs@test.com",
givenName: "Willmott",
familyName: "Bloggs"
});
newUser.save((err, newUser) => {
let { _id: id } = newUser;
chai
.request(app)
.get("/users/" + id)
.send(newUser)
.end((err, res) => {
let { body: { _id } } = res;
expect(id).to.equal(_id);
done();
});
});
});
如何才能让 expect(id).to.equal(_id);
通过?
看起来其中一个是对象 (_id
),另一个是字符串 (id
)。您可能不想比较整个对象,而是比较对象上的某些 属性。考虑到这看起来像是使用 bson 对象的数据库查找,我猜你可以调用 toString()
吗?至少,如果这实际上是 MongoDB UserId:
expect(id).to.equal(_id.toString());