Create stores it in the database you should use make instead.
I recommend using a dataprovider it makes it must cleaner
/**
* @test
* @dataProvider storeValidationProvider
* @param $fieldValue
* @param $field
*/
public function store_validation_tests($field, $fieldValue)
{
$book = Book::factory()->make([
$field => $fieldValue
]);
$response = $this->post('/books', $book->toArray());
$response->assertStatus(302);
$response->assertSessionHasErrorsIn($field);
}
public function storeValidationProvider()
{
return [
'the title is required' => ['title', ''],
'part must be numeric' => ['part', 'One'],
'format_id is required' => ['format_id', ''],
'format_id must exist in formats' => ['format_id', 100],
'genre_id is required' => ['genre_id', ''],
'genre_id must exist in genres' => ['genre_id', 100],
'isbn is required' => ['isbn', ''],
'invalid isbn10 cant be stored' => ['isbn', '123456789'],
'invalid isbn13 cant be stored' => ['isbn', '9771234567890'],
'released is required' => ['released', ''],
'pages is required' => ['pages', ''],
'pages must be numeric' => ['pages', 'Ten'],
'blurb is required' => ['blurb', ''],
];
}