testEmail()
{
$response = $this->service->email($this->request, $this->emailTemplate, $this->event);
echo "Status = " . $response->response()->status() . "\n";
print_r($response->response()->getData());
}
Получаю
Status = 200
stdClass Object
(
[data] => stdClass Object
(
[status] => Письмо успешно постановлено в очередь на отправку
[uuid] => 94d53585-5a62-4332-8883-92693e8f43a1
)
)
Tests: 1 risked
Time: 0.51s
Тест проходит, но что-то не могу понять как сделать утверждения
Вот допустим $response->assertStatus(200); у меня есть этот статус, но как этому утверждению обратиться?
$response->response()->status()->assertStatus(200) так не работает
https://laravel.com/docs/8.x/http-tests
если я сделаю запрос то uuid уже будет другой и сравнить их не получится, тут получается у меня unit тест, вот я и спрашиваю, как то можно там делать у тверждения, или нет, просто проверку запустил что метод отработал и типа все на этом?
$response->assertStatus(200) – этого достаточно для теста. Можно еще проверить структуру или содержание джсона $response->assertJson([]), $response->assertJsonStructure([]).
Такой тест у меня есть для контроллера, я еще хотел написать тест для сервиса, который запускает контролер, что логика там отрабатывается. Согласен контроллер подтвердит, что там все хорошо, если пройдет тест выше как вы написали. Но вот хочется написать тест еще для самого сервиса на проверку логики, а не только для контроллера. Ответы то я получаю, что все хорошо, но вот как сделать утверждения понять не могу
Сервис что-то возвращает?
А почему сервис возвращает джсон? Выглядит не очень хорошо.
Слава богу не xml. JSON же самый удобный формат, вы чего.
Я ничего. Джсон должен контроллер возвращать. Кидаться джсоном внутри приложения (не наружу!) – это странно.
Обсуждают сегодня