PHPUnitでの試験前後の実行タイミングの話
PHPUnitにおいて試験(test)の前後で共有での確保、解放を行う場合にはsetupなどを利用します
それでは他はどうなっているのか?となったわけです。
- setUpBeforeClass : このテストケースにて一番最初に実行します
- tearDownAfterClass : このテストケースの一番最後に実行します
- setUp : 試験の直前で実行します
- tearDown : 試験直後に実行します
確認ソース
<?php
use Tests\TestCase;
class CheckSortTest extends TestCase {
public static function setUpBeforeClass(): void {
print "CheckSortTest@setUpBeforeClass\n";
}
public static function tearDownAfterClass(): void {
print "CheckSortTest@tearDownAfterClass\n";
}
protected function setUp(): void {
print "CheckSortTest@setUp\n";
}
protected function tearDown(): void {
print "CheckSortTest@tearDown\n";
}
public function test_a() {
print " * CheckSortTest@test_a\n";
$this->assertTrue(true);
}
public function test_b(){
print " * CheckSortTest@test_b\n";
$this->assertTrue(true);
}
public function test_c(){
print " * CheckSortTest@test_c\n";
$this->assertTrue(true);
}
}
https://github.com/wataru775/learning-leravel/blob/20220421_seeder_test/tests/Unit/CheckSortTest.php
実行結果
CheckSortTest@setUpBeforeClass
CheckSortTest@setUp
* CheckSortTest@test_a
CheckSortTest@tearDown
CheckSortTest@setUp
* CheckSortTest@test_b
CheckSortTest@tearDown
CheckSortTest@setUp
* CheckSortTest@test_c
CheckSortTest@tearDown
CheckSortTest@tearDownAfterClass
終いに
setUpBeforeClass / tearDownAfterClassがstaticなのがポイントですね
今回はただのメモです…
基本的にsetupだけを使っていましたが、teardownとかで解放しなきゃなw