繁体   English   中英

如何使用 NodeJS 的超级测试测试 GET 请求的路径参数?

[英]How to test path parameters of a GET request with NodeJS's supertest?

我找到了如何测试查询参数的示例

例如:

/api/browser?parameter1=2341&parameter2=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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM