【发布时间】:2019-08-12 07:42:17
【问题描述】:
对于空手道,我正在尝试研究如何根据请求正文的内容返回不同的模拟响应。
我有
Feature: ...
Scenario: pathMatches('/users/login') && methodIs('post') && request == {"username": "gooduser", "password": "goodpassword"}
* def responseStatus = 200
* def response = {"status: login ok"}
Scenario: pathMatches('/users/login') && methodIs('post') && request == {"username": "baduser", "password": "badpassword"}
* def responseStatus = 401
* def response = {"status: login not ok"}
Scenario:
* print request
* print requestHeaders
当我发送带有“gooduser”或“baduser”详细信息的请求时,它们会陷入默认情况。这会打印请求,看起来就像我所期望的那样。
例如,如果我运行
curl -X POST -d '{"username":"baduser","password":"badpassword"}' http://localhost:8999/users/login
我可以在空手道日志中看到前 2 个场景被跳过并且比赛开始(空)。但是,日志也会打印出看起来正确的请求正文,所以我很惊讶第二种情况与我发送的请求不匹配。
另外,如果我从场景中删除 '&& request = {...}' 子句,匹配工作正常。
感觉好像我遗漏了一些明显的东西 - 谁能指出我正确的方向?
【问题讨论】: