Behat请求工作但返回空身

时间:2016-02-25 13:40:50

标签: php symfony behat

我在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

0 个答案:

没有答案