В моих тестах 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
на EmailEntries
и User
.
Но если во время разработки теста что-то не получится, может быть удалено удаление, то есть код очистки. Кроме того, generi c tearDown
является способом generid и не позволяет указывать конкретный c метод, указывающий на проверку требуемой логики tearDown c. Например, в моем случае логарифм демонтажа c на testEmailValid
id Отличается на testEmailValidOnUser
и, если что-то сломалось, например, из-за опечатки, может закончиться тем, что не сможет его запустить вообще, следовательно, не предоставит мне тестовую изоляцию.
Итак, как я могу задать для каждого теста спецификацию c разрушить логи c, которые будут выполняться независимо от того, успешен тест или нет?