Chai-http [POST] 不允许在 bodyParameters 上发送数组(API Testing & Javascript)



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

让我们重新创建场景

我有两个类:

API。ts→它指的是我创建请求的类。

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

Context:方法之间存在一些依赖关系。如果我想要发布,我首先需要一个ID,这个ID从一个叫做postCreateId的功能变成。有了响应体之后,我将使用该ID传递给我的postPublishArt方法

我在api中有这个方法。

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

我在API-op上调用那个功能。是这样的:

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中,body参数需要像这样:

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

}

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

什么是错误:就像我只需要一个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\""}}]}'

我认为这个问题是关于chai-http当你发送POST与ARRAY,但只是传递一个参数。

如果我错了请告诉我

ANSWER:有一个问题,sugerAgent没有回调send方法…

见下面报告的问题和解决方法:https://github.com/chaijs/chai-http/issues/290

相关内容

  • 没有找到相关文章

最新更新