use*_*693 3 testing rest node.js supertest
我找到了如何测试查询参数的示例
例如:
/api/browser?parameter1=2341¶meter2=5663
Run Code Online (Sandbox Code Playgroud)
但如果我有路径参数(如下所示的 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);
}
Run Code Online (Sandbox Code Playgroud)
如果我不想修复参数,我的测试应该是什么样子?
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();
});
});
});
Run Code Online (Sandbox Code Playgroud)
在调用之前是否可以知道parameterhere的值?restApi.get()
您必须提供 的实际数字:parameter。例如
restApi.get('/api/browser/1234')
Run Code Online (Sandbox Code Playgroud)
毕竟端点需要提供真实的值。req.params.parameter那么端点函数中的值将是 1234。
我不太清楚你所说的不修复参数是什么意思。您想使用变量来使测试可重复用于多个参数吗?那我就简单地做
let parameter = 1234;
restApi.get('/api/browser/' + parameter)
Run Code Online (Sandbox Code Playgroud)