Здравтсвуйте! Разбираюсь с тестами. Получается что работаю я с Laravel фреймворком и AngularJS. Большинство моих методов возвращают JSON объекты.
Ну пример стандартного метода:
/**
* Update company.
*
* @param int $id Company id
* @param Request $request Company data
* @throws ModelNotFoundException If company is not found
* @return Response
*/
public function update(int $id, Request $request): Response
{
try{
$company = Company::findOrFail($id);
$rules = array(
'email' => 'required|email|unique:companies,email,' . $request->id. ',id',
'name' => 'required',
'address' => 'required',
);
$validator = Validator::make($request->all(), $rules);
if ($validator->fails()) {
$messages = $validator->messages();
return response([
'error' => $messages
], 400);
} else {
$company->name = $request->name;
$company->email = $request->email;
$company->address = $request->address;
$company->save();
return response([
'success' => true, 'data' => $company
], 200);
}
}catch (ModelNotFoundException $e){
return response([
'error' => true
], 400);
}
}
В Laravel есть уже все необходимое для написания теста (на PhpUnit). Но здесь вот не могу никак понять как правильно написать тест.
На просторах инета вижу простые примеры тестов которые проверяют на true false (AssertTrue/AssertFalse) метод и т.п. Ну а что если у меня например возвращается Json и аргументы типизированные?
Может кто написать верный тест к такому методу?
Мне бы это очень помогло.
Спасибо!