>  기사  >  PHP 프레임워크  >  Yii에서 단위 테스트를 작성하는 방법

Yii에서 단위 테스트를 작성하는 방법

(*-*)浩
(*-*)浩원래의
2019-11-05 15:04:453275검색

단위 테스트

단위 테스트는 테스트/단위 디렉터리에 있으며 모든 유형의 단위 및 통합 테스트를 포함해야 합니다.

Yii에서 단위 테스트를 작성하는 방법

모든 테스트 케이스는 단위 테스트를 위한 표준 Codeception 형식인 CodeceptionTestUnit 클래스를 확장합니다. Yii에서는 완전히 격리된 단위 테스트를 개발하는 것이 매우 어렵기 때문에 각 테스트 사례 전에 애플리케이션이 시작됩니다.                   (권장 학습: yii tutorial)

Yii2 모듈이 활성화된 테스트/unit.suite.yml 파일에서 테스트를 구성합니다.

modules:
    enabled:
      - Yii2:
            part: [orm, email]

이 모듈은 테스트 사례에 대한 Yii 애플리케이션을 시작하고 단순화하기 위한 추가 도우미 메서드를 제공합니다. 테스트. 기능 테스트 방법만 필요하지 않도록 ORM 및 이메일 부분만 있습니다.

테스트 케이스의 $this->tester 클래스에 접근하여 Yii2 모듈 메소드를 사용할 수 있습니다. 따라서 orm 및 email 부분이 활성화되면 다음 부분에 속하는 메서드를 호출할 수 있습니다:

<?php
// insert records in database
$this->tester->haveRecord(&#39;app/model/User&#39;, [&#39;username&#39; => &#39;davert&#39;]);
// check records in database
$this->tester->seeRecord(&#39;app/model/User&#39;, [&#39;username&#39; => &#39;davert&#39;]);
// test email was sent
$this->tester->seeEmailIsSent();
// get a last sent emails
$this->tester->grabLastSentEmail();

Fixtures 부분이 활성화되면 테스트에서 Fixture를 로드하고 사용하는 메서드도 얻을 수 있습니다:

<?php
// load fixtures
$this->tester->haveFixtures([
    &#39;user&#39; => [
        &#39;class&#39; => UserFixture::className(),
        // fixture data located in tests/_data/user.php
        &#39;dataFile&#39; => codecept_data_dir() . &#39;user.php&#39;
    ]
]);
// get first user from fixtures
$this->tester->grabFixture(&#39;user&#39;, 0);

Yii2 모듈의 경우 활성화되면 테스트 후에 애플리케이션이 초기화되고 정리되므로 테스트 중에 Yii::$app을 호출하는 것이 안전합니다. 테스트 사례에 도우미 메서드나 사용자 지정 어설션을 추가하려면 CodeceptionTestUnit을 확장하지 말고 별도의 도우미 클래스를 작성해야 합니다.

위 내용은 Yii에서 단위 테스트를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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