我是server.js文件,它有我的快递应用程序。 对于测试用法,我可以在下面的测试文件中使用express来运行演示测试,但我不能成功运行我的测试:(
const request = require('supertest');
const express = require('express');
const app = express();
app.get('/user', function(req, res) {
res.status(200).json({ name: 'tobi' });
});
request(app)
.get('/user')
.expect('Content-Type', /json/)
.expect('Content-Length', '15')
.expect(200)
.end(function(err, res) {
if (err) throw err;
});
describe('GET /user', function() {
it('respond with json', function(done) {
request(app)
.get('/user')
.set('Accept', 'application/json')
.expect('Content-Type', /json/)
.expect(200, done);
});
});
但是,如果我尝试使用我的应用程序,如下所示:
const server = ('../server');
const request = require("supertest")
describe("Upload Page Test", (done) => {
describe("(GET /alive) returns webpage ", (done) => {
it("Is service alive", done => {
request(server)
.get("/alive")
.set('Accept', 'text/html; charset=utf-8')
.expect('Content-Type', 'text/html; charset=utf-8')
.expect('Content-Length', '2')
.end((err, res) => {
if (err) console.log("Error "+err);
console.log(JSON.stringify(res));
done();
});
});
});
});
我收到错误
superagent GET ../server/alive +0ms
Error TypeError: Cannot read property 'header' of undefined
undefined
我的服务器文件的实现就像;
const app = express();
...
...
app.get("/alive", (req, res) => {
console.log('alive service is running');
var promise = Provider.find({});
promise
.then(providers => {
console.log('alive service is OK');
res.send("OK");
})
.catch(err => {
console.log('alive service is FAILED');
res.send("ERROR");
});
});
...
...
module.exports = app;
固定。 我没有为服务器编写 reqiure ..:)
答案 0 :(得分:0)
固定。 reqiure()不适用于服务器...