단위 테스트
단위 테스트는 테스트/단위 디렉터리에 있으며 모든 유형의 단위 및 통합 테스트를 포함해야 합니다.
모든 테스트 케이스는 단위 테스트를 위한 표준 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('app/model/User', ['username' => 'davert']); // check records in database $this->tester->seeRecord('app/model/User', ['username' => 'davert']); // test email was sent $this->tester->seeEmailIsSent(); // get a last sent emails $this->tester->grabLastSentEmail();
Fixtures 부분이 활성화되면 테스트에서 Fixture를 로드하고 사용하는 메서드도 얻을 수 있습니다:
<?php // load fixtures $this->tester->haveFixtures([ 'user' => [ 'class' => UserFixture::className(), // fixture data located in tests/_data/user.php 'dataFile' => codecept_data_dir() . 'user.php' ] ]); // get first user from fixtures $this->tester->grabFixture('user', 0);
Yii2 모듈의 경우 활성화되면 테스트 후에 애플리케이션이 초기화되고 정리되므로 테스트 중에 Yii::$app을 호출하는 것이 안전합니다. 테스트 사례에 도우미 메서드나 사용자 지정 어설션을 추가하려면 CodeceptionTestUnit을 확장하지 말고 별도의 도우미 클래스를 작성해야 합니다.
위 내용은 Yii에서 단위 테스트를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!