/
phpunit Fixtures
phpunit Fixtures
setUp, tearDown
jUnit 처럼 매 테스트마다 호출되어야 하는 메서드가 있다면 setUp 과 tearDown 사용
class HttpTest extends TestCase { protected $http = null; protected function setUp() { $this->http = new HttpClient(); } protected function tearDown() { $this->http = null; } public function testBasicExample() { $this->assertEquals($this->http, null); var_dump($this->http); }
전역 픽스처
클래스 생성전, 파괴전에 한 번만 호출될 전역 메서드가 필요할 경우 setUpBeforeClass,tearDownAfterClass 를 static 으로 구현
class HttpTest extends TestCase { protected $http = null; public static function setUpBeforeClass() { print('setUpBeforeClass'); } public static function tearDownAfterClass () { print('tearDownAfterClass '); } protected function setUp() { $this->http = new HttpClient(); } protected function tearDown() { $this->http = null; } }
문제 해결
Laravel Eloquent 에서 에러 발생
phpunit 으로 단위 테스트시 setUp() 메소드를 추가하면 다음 에러 발생
PHP Fatal error: Call to a member function connection() on a non-object in vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php on line 3146 PHP Stack trace: PHP 1. {main}() C:\util\phpunit.phar:0 PHP 2. PHPUnit_TextUI_Command::main() C:\util\phpunit.phar:612 PHP 3. PHPUnit_TextUI_Command->run() phar://C:/util/phpunit.phar/phpunit/TextUI/Command.php:138 PHP 4. PHPUnit_TextUI_TestRunner->doRun() phar://C:/util/phpunit.phar/phpunit/TextUI/Command.php:186 PHP 5. PHPUnit_Framework_TestSuite->run() vendor\phpunit\phpunit\src\TextUI\TestRunner.php:406 PHP 6. PHPUnit_Framework_TestCase->run() vendor\phpunit\phpunit\src\Framework\TestSuite.php:722 PHP 7. PHPUnit_Framework_TestResult->run() vendor\phpunit\phpunit\src\Framework\TestCase.php:699 PHP 8. PHPUnit_Framework_TestCase->runBare() vendor\phpunit\phpunit\src\Framework\TestResult.php:609 PHP 9. PHPUnit_Framework_TestCase->runTest() vendor\phpunit\phpunit\src\Framework\TestCase.php:743 PHP 10. ReflectionMethod->invokeArgs() vendor\phpunit\phpunit\src\Framework\TestCase.php:866
원인은 parent::setUp() 을 호출하지 않아서 임
public function setUp() { //parent::setUp(); $this->mig = new MigUtils; }
Ref
, multiple selections available,
Related content
PHPUnit 에서 예외 테스트(Exception Test) 하기
PHPUnit 에서 예외 테스트(Exception Test) 하기
More like this
phpunit 단위 테스트 건너뛰기(skipping tests)
phpunit 단위 테스트 건너뛰기(skipping tests)
More like this
laravel test 하기
laravel test 하기
More like this
PHPUnit test case dependency
PHPUnit test case dependency
More like this
phpunit 설치 및 php 단위 테스트 하기
phpunit 설치 및 php 단위 테스트 하기
More like this
travis ci 에서 phpunit 에러날 때
travis ci 에서 phpunit 에러날 때
More like this