我想测试一条为数据库添加值的路由。
这是我的测试:
use DatabaseTransactions;
public function testValues()
{
$this->withoutMiddleware(); // Disabling the auth middleware
$response = $this->json('POST', '/values', [
'values' => 'THIS_IS_A_TEST',
]);
$response
->assertStatus(200);
$this->assertDatabaseHas('values', [
'value' => 'THIS_IS_A_TEST'
]);
}
最后一个断言总是错误的,因为数据库是空的。我认为这是因为最后一个断言是在将值添加到DB之前完成的。
只有在第一个断言被执行后才能执行第二个断言吗?
或者我可以同步进行此测试吗?
答案 0 :(得分:0)
首先,我可以回答这个问题 只有在第一个断言被执行后才可以执行第二个断言吗? - 是的......
我希望我的代码可以与您合作。
DB::beginTransaction();
try {
$response = $this->json('POST', '/values', [
'values' => 'THIS_IS_A_TEST',
]);
$response
->assertStatus(200);
$this->assertDatabaseHas('values', [
'value' => 'THIS_IS_A_TEST'
]);
//This success request
} catch (\Exception $exception) {
DB::rollBack();
//This failed request
}