0

我正在寻找一些关于我的测试代码如何发送发布数据的指导。在我的单元测试中,我希望这.send会正确设置数据。但是,在运行时没有任何关于req.body导致TypeError: Cannot read property 'key' of undefined. 这是我的设置。有人对如何解决这个问题有任何建议吗?

测试代码

  describe("/myTest", () => {
    it("should work with valid data", (done) => {
      let data = {
        "key": value
      };

      chai.request(api).post("/path").send(data).end((err, res) => {
        let val = res.body.value;
        assert.ok(val);
        done();
      });
    })
  });

快递代码:

app.post('/path', async function(req, res) {
  let data = req.body;
  let val = data.key;
  res.json({'value': val});
});
4

1 回答 1

0

您的代码工作正常:

app.js

const express = require('express');
const bodyParser = require('body-parser');
const app = express();

app.use(bodyParser.json());
app.post('/path', async function (req, res) {
  let data = req.body;
  let val = data.key;
  res.json({ value: val });
});

module.exports = app;

app.test.js

const chai = require('chai');
const chaiHttp = require('chai-http');
const api = require('./app');

chai.use(chaiHttp);
const { assert } = chai;

describe('/myTest', () => {
  it('should work with valid data', (done) => {
    let data = {
      key: 'value',
    };

    chai
      .request(api)
      .post('/path')
      .send(data)
      .end((err, res) => {
        let val = res.body.value;
        assert.ok(val);
        done();
      });
  });
});

测试结果:

  /myTest
    ✓ should work with valid data (44ms)


  1 passing (47ms)

----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |     100 |      100 |     100 |     100 |                   
 app.js   |     100 |      100 |     100 |     100 |                   
----------|---------|----------|---------|---------|-------------------
于 2020-12-25T05:55:29.237 回答