从使用Laravel Spark 6(Laravel 5.6)的新版本开始,并决定尝试使用TDD。
首次测试很可爱,我创建了一个单元测试,以确保用户可以创建一个团队。
(伪代码):
class AddNewTeamTest extends TestCase
{
/** @test */
public function admin_can_create_new_team()
{
// Create a user account
$data = [
// Information for tea,
];
$response = $this->withHeaders([
'X-Requested-With' => 'XMLHttpRequest',
])
->actingAs($user)
->json('POST', '/api/teams', $data);
$response
->assertStatus(201);
}
}
在TDD风格中使用它是一个很好的过程,但现在我希望能够编写一个测试来为该团队添加成员。
似乎倒退了,在这个新测试中,我会在第一次测试中运行所有代码。有没有办法解决?对于新测试,我需要一个用户和团队已经创建,然后才能测试将用户添加到该团队..
欢迎任何链接或建议!
答案 0 :(得分:1)
您可以使用函数setUp()
并在其中构建您的环境。
所以你的课应该是这样的:
class AddNewTeamTest extends TestCase
{
protected function setUp()
{
// Create a user account
// Create your enviroment, etc.
$this->actingAs($user)
}
/** @test */
public function admin_can_create_new_team()
{
$data = [
// Information for tea,
];
$response = $this->withHeaders([
'X-Requested-With' => 'XMLHttpRequest',
])
->json('POST', '/api/teams', $data);
$response
->assertStatus(201);
}
public function testAnother()
{
\\your next test
}
}
如果您在接下来的几个案例中需要一个团队,那么应该在setUp()
中添加。
此外,你可以让你的下一个测试需要ypur上一个。在这种情况下,您可以在admin_can_create_new_team()
中返回一些内容,并将其作为testAnother()