Тест POST Symfony2 API с использованием YAML/Faker

Я строю REST API с использованием Symfony2. Я уже использую связку Liip для своих функциональных тестов вместе с Алисой и Факером для генерации всех приборов. Однако у меня нет особых проблем, когда я хочу напрямую тестировать сами вызовы POST, поскольку длинные данные JSON включены в данные POST, что делает мои функции довольно длинными, безобразными и нечитаемыми.

Я решил убрать поддельный JSON из класса, преобразовав их в файлы YAML и затем загрузив их с помощью синтаксического анализатора Symfony:

private function loadYaml($resource){
        $data = Yaml::parse(file_get_contents('src/AppBundle/DataFixtures/YAML/' . $resource . '.yml'));
        return $data;
}

Кажется, это работает довольно хорошо, так как я могу легко преобразовать их обратно в объекты JSON и затем использовать это в вызове:

$postData = json_encode($this->loadYaml('newapplication'));
$this->client->request(
    'POST', 
    '/api/application/save/',
    array('data' => $postData), // The Request parameters
    array(), // Files
    array(),
    'mybody', // Raw Body Data
    true
);

Мой первый вопрос: это правильный подход? Есть ли какая-то связка, которую я пропустил, которая облегчит мою жизнь?

Мой второй вопрос: можно ли будет использовать Faker в рамках этих конструкций YAML. На моих приборах я вызываю функции Faker (например, ), которые при загрузке приборов автоматически заполняют мои сущности случайными, но значащими значениями. Можно ли будет использовать их в этих конструкциях YAML?

Большое спасибо!;)

1 ответ

На ваш вопрос о пакете, WebTestCase из Symfony\Bundle\FrameworkBundle\Test\WebTestCase действительно приятно провести тестирование по REST API в проекте Symfony.

В POST данные находятся в теле и не имеют параметра. ( Как параметры отправляются в запросе HTTP POST?)

Пытаться

$this->client->request(
    'POST', 
    '/api/application/save/',
    array(), // The Request parameters
    array(), // Files
    array(),
    $postData, // Raw Body Data
    true
);
Другие вопросы по тегам