首页 > 解决方案 > 使用 mocha / chai 测试服务:测试登录时出错

问题描述

我正在为登录服务编写测试。如果登录正确,则测试必须通过。在每次测试之前,都会清洁 bd。所以我首先创建一个用户,然后尝试登录。预期的行为是在响应中收到状态 200,但实际上我收到的是状态 401,这表示我没有正确创建用户。

describe("Users", () => {
   beforeEach(done => {
       User.remove({}, () => {
        done();
      });
   });

describe("/POST login", () => {
    it("should return successful login", done => {
        const user = new User({
            username: "test",
            email: "test@test.com",
            password: "testpass"
        });
        const user2 = {
            user: "test",
            password: "testpass"
        };
        user.save(err => {
            if (err) {
                done();
            }
            chai.request(server)
                .post("/users/login")
                .send(user2)
                .end((err, res) => {
                    expect(res).to.has.status(200);
                    done();
                });
        });  

    });

测试结果:

未捕获的 AssertionError:预期 { Object (_events, _eventsCount, ...) } 的状态码为 200 但得到了 401

任何暗示这里发生了什么?

标签: node.jsmongoosemocha.jschaichai-http

解决方案


推荐阅读