Chai-http [POST] 不允许在 bodyParameters 上发送数组API 测试和 Javascript

问题描述

我在我的测试用例中发现了这种奇怪的行为。

让我们重新创建场景

我有两门课:

API.ts -> 指的是我在其中创建请求的类。

API-op.ts -> 指的是我通过断言、期望等进行验证的类

Context:方法之间存在一些依赖关系。我的意思是,如果我想发布,我首先需要一个 ID,该 ID 来自一个名为 postCreateId 的方法。获得响应正文后,我将使用该 ID 传递给我的 postPublishArt 方法

所以。

我在 API.ts 上有这个方法

public postPublishArt(token: any,Id: any) {
    return chai.request(URLBASE)
        .post(URI)
        .set({ Authorization: "Bearer " + token })
        .send({
            id: Id
        })
}

所以,我像这样在 API-op.ts 上调用方法

public async postPublish() {
        var accesstoken = undefined;
        return this.chaiClass.generatetoken()
            .then(async (response) => {
                accesstoken = response.body.Accesstoken;
                return this.chaiArt.postCreateId(accesstoken)
                    .then(async (response) => {
                        let id = response.body.id;
                        let array: Array<string> = [id];
                        return this.chaiArt.postPublishArt(accesstoken,array)
                            .then(async (response) => {
                                expect(response).to.have.status(201);
                                return response;
                            }).catch(err => {
                                return console.log('Failure',err);
                            });
                    });
            });
    }

在 Postman 上,bodyparameter 需要是这样的:

{
      "ids": 
          [
"d2164919-730a-5fe2-924d-5c14cf36e38c"
]
      
}

注意方括号,因为body参数要求ids键必须是数组。

错误是什么:就像我只需要将一个 id 作为数组传递一样,一旦我转换了该变量并将其发送到 POST 方法。 POST 方法显示错误

text:'{"errors":[{"code":"unexpected-exception","details":{"statusCode":500,"error":"invalid input Syntax for type timestamp: \\"0NaN-NaN-NaNTNaN:NaN:NaN.NaN+NaN:NaN\\""}}]}'

我认为当您使用 ARRAY 发送 POST 但只传递一个参数时,问题与 chai-http 有关。

如果我错了请告诉我

解决方法

ANSWER: 有一个问题是 sugerAgent 没有回调发送方法...

请参阅下面报告的问题及其解决方法:https://github.com/chaijs/chai-http/issues/290

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...