Вижу, что многие в написании тестов в Laravel в основном делятся на две категории. Эти подходы разные. Какой вы используете и какой для вас предпочтительнее и почему?
Примеры не связаны, просто рандом из интернета.
Первый, через создание экземпляра класса и далее доступ к тестируемому методу:
public function testBalanceIsInitiallyZero()
{
$ba = new BankAccount;
$this->assertEquals(0, $ba->getBalance());
}
Второй вариант, как в документации laravel:
public function testCreateProductWithMiddleware()
{
$data = [
'name' => "New Product",
'description' => "This is a product",
'units' => 20,
'price' => 10,
'image' => "https://images.pexels.com/photos/1000084/pexels-photo-1000084.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940"
];
$response = $this->json('POST', '/api/products',$data);
$response->assertStatus(401);
$response->assertJson(['message' => "Unauthenticated."]);
}