我找到了如何测试查询参数的示例
例如:
/api/browser?parameter1=2341¶meter2=5663
但是如果我有一个路径参数,我找不到如何参数化测试,一个像这样的 URL:
const ENDPOINT_DETAILS = "/api/browser/:parameter";
app.get(ENDPOINT_DETAILS, function (req, res) {
logger.info("Endpoint called: " + ENDPOINT_DETAILS);
var details = {}
// ... magic
res.send(details);
}
如果我不想修复我的参数,我的测试应该是什么样的?
describe("returns details", function() {
it("returns status 200", function(done) {
var sampleData = "sample_detail";
// this won't work
restApi.get('/api/browser/:parameter')
.set('Accept', 'application/json')
.expect(200, { "text" : "Detail of " + parameter + " is: " + sample_text})
.end(function(err, res) {
if (err) throw err;
done();
});
});
});
在 restApi.get()
被调用之前,这里是否有可能知道 parameter
的值?
最佳答案
您必须为 :parameter
提供一个实际数字。例如
restApi.get('/api/browser/1234')
毕竟端点需要提供真实值。 req.params.parameter
将在端点函数中变为 1234。
我不太确定您所说的不修复参数是什么意思。您想使用变量使测试可重复用于多个参数吗?那我就简单的做
let parameter = 1234;
restApi.get('/api/browser/' + parameter)
关于node.js - 如何用NodeJS的supertest测试GET请求的路径参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46645616/