我在symfony2应用中使用Behat(https://github.com/Behat/Behat)来测试REST API。
我的一些场景有一个奇怪的问题,当请求好的时候会返回一个200
代码,但是返回一个空体,所以测试失败...
例如,我做了这个场景:
Scenario: I find all my DNS zones
Given I set header "Authorization" with value "Bearer xxxxxxxxx"
And I send a GET request to "/api/dns"
Then the response code should be 200
And the response should contain json:
"""
{
}
"""
Then print response
这是我在终端上得到的测试结果:
Scenario: I find all my DNS zones # features/api/security.feature:28
Given I set header "Authorization" with value "Bearer xxxxxxxxx" # Behat\WebApiExtension\Context\WebApiContext::iSetHeaderWithValue()
And I send a GET request to "/api/dns" # Behat\WebApiExtension\Context\WebApiContext::iSendARequest()
Then the response code should be 200 # Behat\WebApiExtension\Context\WebApiContext::theResponseCodeShouldBe()
And the response should contain json: # Behat\WebApiExtension\Context\WebApiContext::theResponseShouldContainJson()
"""
{
}
"""
Then print response # Behat\WebApiExtension\Context\WebApiContext::printResponse()
│ GET api/dns => 200:
│ []
当我在终端中尝试使用cURL进行相同的请求时,就像这样
curl -X GET -H "Authorization: Bearer xxxxxxxxx" "http://localhost:8000/api/dns"
它返回所有值:
[{ “ID”:1, “名称”: “yahoo.fr”, “owner_id”:1, “CREATE_DATE”: “2016-02-25T11:53:07 + 0100”},{ “ID” :2中, “名称”: “dbmail.com”, “owner_id”:223, “CREATE_DATE”: “2016-02-25T11:53:07 + 0100”},{ “ID”:3 “名称”:” tiscali.fr”, “owner_id”:223, “CREATE_DATE”: “2016-02-25T11:53:07 + 0100”},{ “ID”:4 “名称”: “wanadoo.fr”, “owner_id” :1, “CREATE_DATE”: “2016-02-25T11:53:07 + 0100”},{ “ID”:5 “名称”: “hotmail.fr”, “owner_id”:223, “CREATE_DATE”:” 2016-02-25T11:53:07 + 0100" }]
我真的不知道是什么问题......我的一些场景工作得很好并返回数据...... 我已经在互联网上搜索过了,但我没有找到任何相关信息。
我不知道是否有人已经有这个问题。
感谢您的帮助。
修改
有我的Behat.yml
default:
gherkin:
cache: app/cache/test/behat/behat_gherkin_cache
testers:
rerun_cache: app/cache/test/behat/behat_rerun_cache
calls:
error_reporting: 14335 # E_ALL & ~E_USER_DEPRECATED
extensions:
Behat\Symfony2Extension: ~
Behat\WebApiExtension:
base_url: 'http://nginx:8001'
Behat\MinkExtension:
sessions:
default:
symfony2: ~
suites:
default:
contexts:
- Behat\WebApiExtension\Context\WebApiContext
- FeatureContext