Пример кодирования к массиву
Есть ли реализованный метод для преобразования примера в массив, чтобы я мог передать его прямо в пост-запрос в качестве параметров. Прямо сейчас я должен сделать:
/**
* @dataprovider invalidUserActivityRequestProvider
*/
public function it_does_not_get_tracked_for_an_invalid_request(ApiTester $I, Example $example)
{
$userActivity = [
'timestamp' => isset($example['timestamp']) ? $example['timestamp'] : null ,
'email' => isset($example['email']) ? $example['email'] : null ,
'type' => isset($example['type']) ? $example['type'] : null ,
'duration' => isset($example['duration']) ? $example['duration'] : null ,
'distance' => isset($example['distance']) ? $example['distance'] : null ,
'repetitions' => isset($example['repetitions']) ? $example['repetitions'] : null ,
];
$I->sendPOST('/useractivity', $userActivity);
$I->seeResponseCodeIs(422);
}
protected function invalidUserActivityRequestProvider () : array {
return [
[
'timestamp' => Carbon::now()->toDateTimeString(),
'email' => 'invalidUser@example.com',
'type' => 'run',
'duration' => 300,
'distance' => 1000,
'repetitions' => 1
],
[
'timestamp' => Carbon::now()->toDateTimeString(),
'email' => 'user@example.com',
'type' => 'invalidType',
'duration' => 300,
'distance' => 1000,
'repetitions' => 1
],
[
'timestamp' => Carbon::now()->toDateTimeString(),
'email' => 'user@example.com',
'type' => 'run'
],
];
}
но я бы хотел что-то вроде:
public function it_does_not_get_tracked_for_an_invalid_request(ApiTester $I, Example $example)
{
$I->sendPOST('/useractivity', $example->toArray());
$I->seeResponseCodeIs(422);
}
2 ответа
Решение
Я не знаю Codeception, но приведение типа является опцией:
$I->sendPOST('/useractivity', (array)$example);
Извините, работает не очень!...
Пытаюсь утвердить (array) $example
и массив приводит к:
- Expected | + Actual
@@ @@
Array (
- Binary String: 0x002a0064617461 => Array (...)
+ 'id' => 6
+ 'unique_id' => '2199033651380'
+ 'data' => Array (...)
+ 'user_id' => 1
+ 'brand_id' => 1
+ 'infrastructure' => 'AT'
)