在js mocha中使用db请求的异步api请求?

时间:2017-07-07 09:42:11

标签: javascript node.js testing mocha co

我构建了nodejs服务器,现在我正在使用mocha进行测试。

我遇到异步请求问题。我将对象发送到API,然后在DB中检查对象的记录。我只需要使用co库和生成器。 出现了错误:

  TypeError: Cannot read property 'id' of null

它依赖于insertUser对象为null,但我不知道为什么来自数据库的对象为null。

API工作正常,并且sequilize工作正常。

it('it should POST a user', () => {
        return co(function *() {
            let user = {
                name: "testInsertUser",
                password: "12345"
            };
                let res = yield chai.request(server)
                        .post('/api/users')
                        .send(user);

                res.should.have.status(HTTPStatus.OK);
                res.body.should.be.a('object');
                res.body.should.have.property('name').eql(user.name);
                res.body.should.not.have.property('password');

                //Find user in db
                let insertUser =
                    yield models.User.findOne({
                                 where: {
                                    name: user.name,
                                    password: user.password
                                    }
                                });
                res.body.should.have.property('id').eql(insertUser.id);
        });
    });

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。 代码很好,但db中的密码是哈希,我检查哈希密码和订单密码