테스트 외부 작업
대부분의 경우 테스트 전 설정 작업과 테스트 후 해체 작업을 수행하는 데에는 NUnit SetUp 및 TearDown 속성으로도 충분합니다. Unity 테스트 프레임워크는 Unity 전용 기능을 통해 이러한 속성을 확장합니다. Unity 커스텀 속성 UnitySetUp 및 UnityTearDown은 UnityTestAttribute와 동일한 방식으로 명령을 실행 양보하고 프레임을 건너뛸 수 있습니다.
작업 실행 순서
테스트와 관련된 작업은 다음 순서로 실행됩니다.
- IApplyToContext를 구현하는 속성
- IOuterUnityTestAction를 구현하는 모든 속성은 자체
BeforeTest를 호출합니다 - 테스트 클래스에 UnitySetUpAttribute 메서드가 있는 테스트
- IWrapSetUpTearDown을 구현하는 속성
- SetUp 속성이 있는 모든 메서드
- Action 속성은 자체
BeforeTest메서드를 호출합니다 - IWrapTestMethod를 구현하는 속성
- 테스트가 자체적으로 실행됩니다
- Action 속성은 자체
AfterTest메서드를 호출합니다 - TearDown 속성이 있는 모든 메서드
- 테스트 클래스에 UnityTearDownAttribute 메서드가 있는 테스트
- IOuterUnityTestAction을 구현하는 속성은 자체
AfterTest를 호출합니다
NUnit Test 및 UnityTest 모두에 대한 작업 리스트는 동일합니다.
실행 순서
참고: 일부 브라우저에서는 SVG 이미지 파일을 지원하지 않습니다. 위 이미지가 올바르게 표시되지 않는 경우(예를 들어 텍스트가 보이지 않는 경우) Google Chrome 또는 Mozilla Firefox 등 다른 브라우저를 사용해 보십시오.
Unity OuterTestAttribute
OuterTestAttribute는 테스트 외부의 Unity 래퍼로, 이 속성이 있는 모든 테스트가 테스트 전후에 코드를 실행할 수 있도록 허용합니다. 이 메서드를 사용하면 UnityTest와 동일한 방식으로 명령을 실행 양보할 수 있습니다. 속성은 NUnitAttribute를 상속하고 IOuterUnityTestAction을 구현해야 합니다.
실행 순서
도메인 재로드 시 Unity OuterTestAttribute 메서드는 재실행되지 않지만, NUnit Action 속성은 재실행됩니다.
참고: 일부 브라우저에서는 SVG 이미지 파일을 지원하지 않습니다. 위 이미지가 올바르게 표시되지 않는 경우(예를 들어 텍스트가 보이지 않는 경우) Google Chrome 또는 Mozilla Firefox 등 다른 브라우저를 사용해 보십시오.
UnitySetUp 및 UnityTearDown
UnitySetUp 및 UnityTearDown 속성은 명령 실행 양보를 허용한다는 점을 제외하고 표준 NUnit SetUp 및 TearDown 속성과 동일합니다. UnitySetUp 및 UnityTearDown 속성은 IEnumerator 반환 타입을 기대합니다.
실행 순서
UnitySetUp 및 UnityTearDown은 Test 또는 UnityTest 테스트 속성과 함께 사용할 수 있습니다. 두 경우 모두 Unity 및 비 Unity SetUp 및 TearDown 속성의 상대적인 실행 순서는 동일합니다. 유일한 차이점은 UnityTest는 도메인 재로드를 유발할 수 있는 명령의 실행 양보를 허용한다는 점입니다. 이 경우 비 Unity SetUp 및 TearDown 메서드가 실행된 후 테스트의 두 번째 부문으로 이동합니다.
참고: 일부 브라우저에서는 SVG 이미지 파일을 지원하지 않습니다. 위 이미지가 올바르게 표시되지 않는 경우(예를 들어 텍스트가 보이지 않는 경우) Google Chrome 또는 Mozilla Firefox 등 다른 브라우저를 사용해 보십시오.
기본 및 파생 클래스
실행 순서에서 base이라는 용어는 테스트 클래스가 상속하는 기본 클래스를 나타냅니다. UnitySetUp 및 UnityTearDown은 기본 클래스와 그 파생 클래스 간의 실행 순서를 결정할 때 NUnit SetUp 및 TearDown 속성과 동일한 패턴을 따릅니다. SetUp 메서드는 기본 클래스에서 먼저 호출된 후 파생 클래스에서 호출됩니다. TearDown 메서드는 파생 클래스에서 먼저 호출된 후 기본 클래스에서 호출됩니다. 자세한 내용은 NUnit 문서를 참조하십시오.
도메인 재로드
편집 모드에서는 플레이 모드 시작 및 종료와 같이 도메인 재로드를 유발할 수 있는 명령을 실행 양보할 수 있습니다(커스텀 명령 실행 양보 참조). 도메인 재로드가 발생하면 모든 비 Unity 작업(예: OneTimeSetup 및 Setup)이 다시 실행된 후 도메인 재로드를 유발한 코드가 계속 실행됩니다. Unity 작업(예: UnitySetup)은 다시 실행되지 않습니다. Unity 작업이 도메인 재로드를 유발한 코드인 경우 UnitySetup 메서드의 나머지 코드는 도메인 재로드 후에 실행됩니다.