Итак, я вхожу в модульное тестирование и создал тест для создания и настройки линии в моей БД.Вот код:
$response = $this->json('POST', '/quotes/3/adjustment',
[
'adjustments' => array([
'description' => 'TEST-Description',
'amount' => 1000,
'quote_id' => 3
])
]
);
$response->assertStatus(201);
При создании он попадает в мой контроллер, затем создается экземпляр моей модели уравнивания, и в этой модели у меня есть этот код для его создания:
foreach($request->adjustments as $adjustment) {
if(array_key_exists('id', $adjustment)) {
$this->find($adjustment['id'])->update([
'description' => $adjustment['description'],
'amount' => $adjustment['amount'],
'quote_id' => $quote->id
]);
} else {
$this->create([
'description' => $adjustment['description'],
'amount' => $adjustment['amount'],
'quote_id' => $quote->id,
]);
}
}
return $quote;
Таким образом, он ожидает, что корректировки будут массивом, и я подумал, что правильно закодировал его в тесте, но я получил ответ 200, что не соответствует ожидаемому 201.Любые идеи о том, как правильно передать один массив в моем тестовом файле, чтобы он прошел тест?
Вот мой контроллер:
$adjustment = new Adjustment();
return $adjustment->newAdjustment($quote, $request)->adjustments;
На заметку, если я запусту это вПочтальон в виде необработанного JSON (Applicatoin / JSON) создает ресурс в БД:
{
"adjustments": [{
"description": "testing-postman",
"amount": 1000,
"quote_id": 1
}
]
}