Я только учусь этому, поэтому прошу прощения, если это слишком просто. У меня есть такие сценарии:
Scenario: Create Task
Given I have the JSON payload:
"""
{
"task_list_id" : 3,
"title" : "From Behat",
"display_order" : 1
}
"""
When I send a POST request to task
Then one SQL ident is created
Scenario: Get the Task
When I send a GET request to "tasklist/{id}/tasks"
Then The response code should be 200
And The response content type should be "application/json"
Итак, первый сценарий устанавливает соединение, а затем JSON возвращает целочисленное значение. Теперь я хочу, чтобы значение это было заменено в следующем сценарии, где URL-адрес имеет заполнитель {id}.
Я попробовал установить $this- >вывести в тело (возвращенное целое число) в файле FeatureContext.php для первого сценария, а затем выполнить preg_replace во втором, чтобы изменить {id} на целое число. Похоже, что при запуске второго сценария выходные данные отключаются перед вызовом этого сценария.
Это мои контекстные методы для описанного выше:
/**
* @Then One SQL ident is created
*/
public function theResponseBodyShouldBeAnInteger() {
$this->theResponseContentTypeShouldBe('application/json');
$this->theResponseCodeShouldBe(201);
$body = $this->response->getBody()->getContents();
if (!ctype_digit($body)) {
throw New Exception(sprintf('Expected integer response but got "%s".', $body));
}
$this->output = $body;
echo "Output is '$this->output'\n";
}
/**
* @When I send a :method request to :uri
*
* @param $method
* @param $uri
*/
public function iSendARequestTo($method, $uri)
{
echo "Output is '$this->output'\n";
$uri = str_replace('{id}', $this->output, $uri);
try {
if ($method == 'POST' || $method == 'PATCH') {
$this->response = $this->client->request($method, $uri, ['json' => $this->requestPayload]);
} else {
$this->response = $this->client->request($method, $uri);
}
} catch (GuzzleHttp\Exception\ClientException $ex) {
throw new Exception($uri . "\n" . $ex->getResponse()->getBody()->getContents());
}
}
Подробнее здесь: https://stackoverflow.com/questions/420 ... a-in-behat
Как заменить URL и передать данные в behat ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1728529706
Anonymous
Я только учусь этому, поэтому прошу прощения, если это слишком просто. У меня есть такие сценарии:
Scenario: Create Task
Given I have the JSON payload:
"""
{
"task_list_id" : 3,
"title" : "From Behat",
"display_order" : 1
}
"""
When I send a POST request to task
Then one SQL ident is created
Scenario: Get the Task
When I send a GET request to "tasklist/{id}/tasks"
Then The response code should be 200
And The response content type should be "application/json"
Итак, первый сценарий устанавливает соединение, а затем JSON возвращает целочисленное значение. Теперь я хочу, чтобы значение это было заменено в следующем сценарии, где URL-адрес имеет заполнитель {id}.
Я попробовал установить $this- >вывести в тело (возвращенное целое число) в файле FeatureContext.php для первого сценария, а затем выполнить preg_replace во втором, чтобы изменить {id} на целое число. Похоже, что при запуске второго сценария выходные данные отключаются перед вызовом этого сценария.
Это мои контекстные методы для описанного выше:
/**
* @Then One SQL ident is created
*/
public function theResponseBodyShouldBeAnInteger() {
$this->theResponseContentTypeShouldBe('application/json');
$this->theResponseCodeShouldBe(201);
$body = $this->response->getBody()->getContents();
if (!ctype_digit($body)) {
throw New Exception(sprintf('Expected integer response but got "%s".', $body));
}
$this->output = $body;
echo "Output is '$this->output'\n";
}
/**
* @When I send a :method request to :uri
*
* @param $method
* @param $uri
*/
public function iSendARequestTo($method, $uri)
{
echo "Output is '$this->output'\n";
$uri = str_replace('{id}', $this->output, $uri);
try {
if ($method == 'POST' || $method == 'PATCH') {
$this->response = $this->client->request($method, $uri, ['json' => $this->requestPayload]);
} else {
$this->response = $this->client->request($method, $uri);
}
} catch (GuzzleHttp\Exception\ClientException $ex) {
throw new Exception($uri . "\n" . $ex->getResponse()->getBody()->getContents());
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/42029344/how-to-replace-url-and-pass-data-in-behat[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия