2017-12-28 17 views
1

Codeception 수락 테스트를 할 때 가장 좋은 방법은 모든 테스트 전에 데이터베이스를 정리하고 모든 테스트를 독립적으로 만드는 것입니다.코드 정리 정리 vs. 의존

하지만 일부 Cest Test는 서로 의존합니다. 그래서 만약 내가 쓰기 다음 createObjectBase 시험에서 DB에서 생성

/** 
* @depends createObjectBase 
* @___skip  
*/ 
public function createObjectMore(AcceptanceTester $I) 
{ 

데이터 때문에 정리의 사라 졌어요. 그러나이 데이터는 createObjectMore 테스트에 필요합니다.

현실적으로 여러 테스트가있는 여러 영역이 있기 때문에 하나의 테스트로 결합 할 수 없습니다. 따라서 createObjectMore은 여기에 자리 표시 자일뿐입니다.

이렇게 처리하는 가장 좋은 방법은 무엇입니까?

답변

0

createObjectBase에 종속 된 Cest는 해당 메소드가 보호 된 추상 (cest?) 클래스를 확장 할 수 있으며 자식 Cest는 @before createObjectbase 주석을 사용하여 해당 데이터가 필요한 각 메소드보다 먼저 실행되도록합니다. 기본적으로 데이터는 테스트에서 지속되지 않으므로 매번이 작업을 수행해야합니다. docs에서

발췌 :

당신은 @Before와 주석 @After 실행 흐름을 제어 할 수 있습니다. 공통 조치를 보호 된 (비 테스트) 메소드로 이동하고 주석에 넣어 테스트 메소드 전후에 호출 할 수 있습니다. 하나 이상의 @before 또는 @after 주석보다 을 사용하여 여러 메소드를 호출 할 수 있습니다. 메서드는 위에서 아래로 순서로 호출됩니다.