柴不会通过发布请求发布JSON

时间:2019-01-19 22:25:01

标签: javascript node.js mocha chai

我正在尝试为我的后端express.js编写测试。 我的代码有效,但似乎CHAI无法正确发布我的JSON,而req.body为“ {}” 知道为什么吗?

当我说好的值决定要打破的时候,其他任何工作都会对该方法进行测试。

在Mocha.js中完成测试

it('/POST /logout => Logout a user by purging a session', (done) => {
    let loginInfo = {};
    loginInfo.usr = 'testuser';
    loginInfo.psw = 'mochatesting197';

    let agent = chai.request.agent(app);

    let json = {};
    json.logout = true;

    agent.post('/login')
        .send(loginInfo)
        .then((res) => {
            return agent.post('/logout')
                .send(json)
                .then((res) => {
                    res.should.have.status(200);
                    res.body.should.be.a('object');
                    res.body['success'].should.have.property('message').eql('YOU HAVE LOGGED OUT');
                    done();
                })
        }).catch((err) => {
            done(err);
        });
});

注销方法

router.post('/logout', function (req, res, next) {
    if (req.body === undefined || (Object.keys(req.body).length === 0 && req.body.constructor === Object)) return res.status(400).json({
        'err': {
            'message': 'NO POST DATA'
        }
    });
    if (!req.body.logout || req.body.logout === false) return res.status(400).json({
        'err': {
            'message': 'WRONG POST DATA'
        }
    });
    if (!req.body.sessionId || req.body.sessionId === undefined) return res.status(400).json({
        'err': {
            'message': 'WRONG POST DATA'
        }
    });
    client.del(req.body.sessionId);
    req.session.destroy();
    res.status(200).json({
        'success': {
            'message': 'YOU HAVE LOGGED OUT'
        }
    });
});

0 个答案:

没有答案