Test 파일에서 &get_instance()를 통해 객체를 받아온 후 사용해 주면 됨.
사용 예)
class PostTest extends PHPUnit_Framework_TestCase{ private $CI; public function setUp(){ $this->CI = &get_instance(); $this->CI->load->database('testing'); } public function testGetsAllPosts() { $this->CI->load->model('post'); $posts = $this->CI->post->getAll(); $this->assertEquals(1, count($posts)); } }
이렇게 작성을 해주게되면 해당 CI에서 test를 해줄 수 있음.
수정)
위처럼만 해주면 되는줄 알았는데 !...과정들이 더 필요함..
먼저 test 폴더내에 2개 파일이 필수임. phpunit.xml, bootstrap.php 이 두 파일을 통해
phpunit 시작점을 잡아줄 수 있음.
phpunit.xml
위와같이 작성해줌.
bootstrap.php
위 파일을 이용하는건데..흠..핵심은 ENVIROMENT를 testing으로 define 해준다는것!
이 값을 이용해 추후에 웹 output을 관리해줄 수 있음.
다음 단계로 hooking 설정을 해줘야함.
config.php에 들어가서 enable_hooks 값을 TRUE 로 해줌.
그런다음 hook.php에 다음을 추가해줌.
$hook['display_override'] = array( 'class' => 'DisplayHook', 'function' => 'captureOutput', 'filename' => 'DisplayHook.php', 'filepath' => 'hooks' );
이는 이후에 나올 output 을 후킹해줄 클래스인 DisplayHook를 CodeIgniter에 등록하는 과정이라고 보면됨.
다음은 application/hooks/DisplayHook.php를 생성해줌. 해당 내용은 아래와 같음.
CI =& get_instance(); $output = $this->CI->output->get_output(); if (ENVIRONMENT != 'testing') { echo $output; } } }
위와같으며 이때 &get_instance 함수는 CI를 사용해본 사람은 알듯..
위와 같은 설정이 모두 끝났다면..테스트 폴더에서
명령을 통해 실행해줌.이상 끝 !
첨부: GitHub에 존재하는 예제 파일.
phpfour-CodeIgniter-v2.0.3-246-g0db038b.zip
'Develop > CodeIgniter' 카테고리의 다른 글
Codeigniter + Vue (0) | 2018.03.15 |
---|---|
[CodeIgniter] Rewirte Rule (0) | 2013.07.18 |
[CodeIgniter]index.php 없애기. (0) | 2012.08.07 |
[CodeIgniter] CI_Utf8 line:47 error (0) | 2012.05.18 |