![](/img/trans.png)
[英]How to test an API with multiple GET parameters with supertest?
[英]How to test path parameters of a GET request with NodeJS's supertest?
我找到了如何测试查询参数的示例
例如:
/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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.