在我的 phpunit 测试中,我需要为每个测试分别运行清理功能,例如:
use PHPUnit\Framework\TestCase;
use MyApp\Database\DatabaseEntryDataGenerator;
use MyApp\Database\Record\User;
use MyApp\Database\Record\Emails;
class MyEmailTest extends TestCase
{
public function testEmailValid()
{
/**
* @var EmailEntries
*/
$emails=DatabaseEntryDataGenerator::table(EmailEntries::TABLE)->generate();
//Do test
$emails->delete();
}
public function testEmailValidOnUser()
{
/**
* @var User
*/
$user=DatabaseEntryDataGenerator::table(User::TABLE)->generateSingle(1);
/**
* @var EmailEntries
*/
$emails=DatabaseEntryDataGenerator::table(EmailEntries::TABLE)->generateMultiple();
//Do test
$emails->delete();
$user->delete();
}
}
假设虚构DatabaseEntryDataGenerator在数据库上生成数据,虚构EmailEntries代表User记录数据。和delete上的方法。EmailEntriesUser
但是,如果在测试开发过程中出现一些 brak mucase 删除,即清理代码可能会被删除。此外,通用tearDown是通用的方式,不允许指定特定方法来测试所需的拆卸逻辑。例如,在我的例子中,testEmailValidid Different on 上的拆卸逻辑testEmailValidOnUser,如果由于打字错误而损坏,可能最终无法运行它,因此不会给我测试隔离。
那么,无论测试成功与否,我如何才能拥有将执行的每个测试特定的拆卸逻辑?
料青山看我应如是
桃花长相依