이 장을 읽기 전에 Selenium 문서와 PHPUnit 문서를 읽어보는 것이 좋습니다. 아래에서는 함수형 작성에 대한 간략한 개요를 제공합니다. Yii 프레임워크의 테스트 기본 원칙:
단위 테스트와 마찬가지로 기능 테스트는 CWebTestCase에서 상속되는 XyzTest 클래스 형식으로 작성됩니다. 여기서 Xyz
는 테스트 중인 클래스를 나타냅니다. PHPUnit_Extensions_SeleniumTestCase
은 CWebTestCase Ancestor 클래스이며, 이 클래스의 모든 메소드를 상속받을 수 있습니다.
기능 테스트 클래스는 편의상 기능 테스트를 위해 XyzTest.php 형식으로 PHP 파일에 저장됩니다. 파일은 일반적으로 protected/tests/functional文件夹下
.
에 저장됩니다. 테스트 클래스에는 주로 testAbc라는 일련의 테스트 메서드가 포함되어 있습니다. 여기서 Abc
은 일반적으로 테스트할 기능의 이름입니다. 예를 들어 사용자 로그인 기능을 테스트하려는 경우 Selenium RC와 웹 간의 상호 작용을 테스트하기 위한 일련의 명령문이 포함된 testLogin的测试方法
.
이라는 테스트 메서드가 있을 수 있습니다. 또한 웹 애플리케이션에서 기대하는 응답을 확인하는 데 사용되는 어설션 문도 포함되어 있습니다.
기능 테스트 작성 방법을 설명하기 전에 WebTestCase.php
파일을 살펴보겠습니다. yiic webapp 명령에 의해 자동으로 생성됩니다. 이 파일은 모든 기능 테스트 클래스 WebTestCase:
define('TEST_BASE_URL','http://localhost/yii/demos/blog/index-test.php/'); class WebTestCase extends CWebTestCase { /** * Sets up before each test method runs. * This mainly sets the base URL for the test application. */ protected function setUp() { parent::setUp(); $this->setBrowserUrl(TEST_BASE_URL); } ...... }
WebTestCase
에 대한 기본 클래스를 정의하며 주로 테스트 페이지의 루트 URL을 설정하고 이어서 테스트 방법 상대 URL을 사용하여 테스트할 페이지를 지정할 수 있습니다.
또한 테스트 루트 URL에서 index-test.php
대신 index.php
가 입력 스크립트로 사용된다는 점에 유의해야 합니다. 둘 사이의 유일한 차이점은 전자가 test.php를 애플리케이션으로 사용한다는 것입니다. main.php
을 사용합니다.
이제 블로그 데모에서 기사를 표시하는 기능을 테스트하는 방법에 대해 이야기하기 시작합니다. 먼저 테스트 클래스를 작성된 대로 작성합니다. 테스트 클래스는 위에서 말한 것에서 상속됩니다. 위에서 언급한 기본 클래스 WebTestCase:
class PostTest extends WebTestCase { public $fixtures=array( 'posts'=>'Post', ); public function testShow() { $this->open('post/1'); // verify the sample post title exists $this->assertTextPresent($this->posts['sample1']['title']); // verify comment form exists $this->assertTextPresent('Leave a Comment'); } ...... }
단위 테스트 작성과 동일하게 먼저 특정 상태(픽스처)를 선언합니다. 여기서는 Post
픽스처 사용을 지정합니다. testShow
테스트 방법에서는 먼저 Selenium RC를 사용하여 URL post/1
을 엽니다. 기본 클래스의 루트 URL(예: http://www.php.cn/
)을 사용하여 현재 페이지에서 sample1
게시물 제목을 찾을 수 있는지 확인합니다. 이 페이지에 Leave a Comment
.
팁: 기능을 실행하는 동안 테스트하기 전에 Selenium-RC 서버를 먼저 시작해야 합니다. 이는 Selenium에서 java -jar selenium-server.jar
명령을 실행하여 수행할 수 있습니다. 서버 설치 디렉터리.
위 내용은 Yii Framework 공식 가이드 시리즈 부록 40 - 테스트: 기능 테스트 관련 내용을 더 주목해 주세요. 홈페이지(www.php.cn)!