>  기사  >  백엔드 개발  >  Yii 프레임워크 공식 가이드 시리즈 보충 자료 40 - 테스트: 기능 테스트

Yii 프레임워크 공식 가이드 시리즈 보충 자료 40 - 테스트: 기능 테스트

黄舟
黄舟원래의
2017-02-16 09:13:331066검색



이 장을 읽기 전에 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)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.