0
我有一個由Mocha測試的應用程序,我可以用我現在所擁有的功能成功運行我的測試,但我明確地在我的測試文件中設置了一個GET
路線,指向/api/v1
。下面是測試文件...如何導入Supertest測試路線?
API.js
:
var request = require('supertest');
var express = require('express');
var app = express();
var router = express.Router();
app.get('/api/v1', function (req, res, next) {
res.json({
"Hello": "World"
});
});
describe('API', function() {
it("Says 'Hello' is 'World'", function (done) {
request(app)
.get('/api/v1')
.expect('Content-Type', /json/)
.expect(200, {
Hello: 'World'
}, done);
});
});
你有沒有注意到我怎麼說require()
報表後app.get()
?我不想在這裏這樣做。我希望能夠從我的項目的routes
目錄導入我的路線。
我覺得很難相信我應該在我的測試文件中複製所有這些路線。我如何導入routes
目錄中的路線以用於此測試文件?
我的路由(在'routes'目錄下)附加到'express.Router()',所以'app.get()'和'express.Router )',我怎麼能從'express.Router()'中得到這些路由? – IIllIIll
感謝您的澄清。我會更新答案。 – gnerkus
基本上我使用'var app = express()'而不是'var app = require('../ app')'。這次真是萬分感謝! – IIllIIll