Behat Scenario Outline Значения с плавающей точкой

Рассмотрим следующий сценарий тестирования API

Given I am using the API Service
When  I send the <request> as <method> to <endpoint> endpoint with <key> having value <value>
Then  The response status code is 200

Examples:
| request    | method | endpoint       | key            | value          |
| "All Keys" | "POST" | "endpointName" | "numericField" | 15             |
| "All Keys" | "POST" | "endpointName" | "numericField" | 15.12345       |

Приведенный выше пример создает запрос с указанными параметрами.

Моя проблема заключается в том, что, хотя целочисленное значение (15) передается в функцию, соответственно, значение с плавающей запятой (15.12345) преобразуется в строку («15.12345»). Это происходит прямо при вызове функции; это не изменяется позже во время другого шага.

Есть ли способ, чтобы значение float не превращалось в строку?

В соответствии с запросом метод шага отправки запроса:

    $data = $this->fulfilmentOptions->getDataValue($request);
$uri = $this->getMinkParameter('base_url') . $this->setEndpoint($endpoint);

array_walk_recursive($data, function(&$item, $originalKey) use ($key, $value) {
if ($originalKey === $key) {
$item = $value;
}
});

try {
$this->response = $this->client->request($method, $uri, [
'headers' => $this->fulfilmentOptions->getDataValue('CreateOrder API Headers'),
'body' => json_encode($data)
]);
} catch (\GuzzleHttp\Exception\RequestException $e) {
$this->response = $e->getResponse();
}

$this->responseContent = $this->response->getBody()->getContents();

0

Решение

Одним из способов решения проблемы является использование floatval метод для ключа «значение», чтобы убедиться, что вы получите правильный тип.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector