Я работаю над проектом электронной коммерции, универсальным книжным магазином.
Я начал с подхода, основанного на тестировании, и полностью придерживался его до сих пор.
Различные конечные точки в этомПроект Lumen Microservice был успешно протестирован ранее, чтобы убедиться, что они выполняют операции CRUD.Однако, поскольку я должен защищать метод Create, Update и Delete с помощью авторизации токена, я не совсем понимаю, как вводить тесты для авторизации.
На данный момент это моя структура тестирования:
tests/app/Exceptions/HandlerTest.php
tests/app/Http/Controllers/BooksControllerTest.php
Тесты для индексации, показа, сохранения, обновления, удаления.Это один из тестов:
public function testStoreBookByPost()
{
$book = factory('App\Book')->make();
$this->post(
'/books',
[
'isbn' => $book->isbn,
'title' => $book->title,
'description' => $book->description,
'author' => $book->author,
'image' => $book->image,
'price' => $book->price,
'slug' => $book->slug
]
);
$this
->seeJson(
[
'created' => true
]
)
->seeInDatabase(
'books',
[
'title' => $book->title
]
);
}
Я ранее разделил тесты обработчика исключений, аналогично я бы предпочел разделить AuthControllerTest
на AuthControllerTest.php
.
Каков наилучший способ сделать это?
Нужно ли писать тесты авторизации путем рефакторинга всех BooksControllerTest
?
Или я должен просто проверить на выдачу токена и невозможность манипулирования базой данных?Это было бы хорошо?