我要测试的请求具有2个必需的标头-Content-Type:'application / json'和Accept:'application / json'。
当我在以下情况下运行时,它会显示状态代码400,表示缺少必需的标头Accept(接受)-这是正确的行为。
Scenario: Validating test
* configure headers = { Content-Type: 'application/json'}
And url testURL
And request { "abc": {"xyz": "fgfdgf"}}
When method post
但是,当我在这种情况下运行时,它仍然会向我提供状态代码400,表示缺少必需的标头Content-Type-这不是正确的行为。
场景:验证测试
* configure headers = { Content-Type: 'application/json',Accept:'application/json'}
And url testURL
And request { "abc": {"xyz": "fgfdgf"}}
When method post
Then status 200
有人可以建议第二种情况出什么问题吗?
答案 0 :(得分:1)
请注意,Content-Type
将由空手道自动设置,如果请求正文显然是JSON,则无需设置。
您犯的错误是-
字符作为JSON(JS)键名无效,因此可以使用:
* configure headers = { 'Content-Type': 'application/json', Accept: 'application/json' }
观察Content-Type
周围的引号。
答案 1 :(得分:1)
通过将字符集配置为null解决了此问题:
默认情况下,字符集被视为UTF-8。因此,为了显式定义content-type,我们需要在Background中将charset设置为null。