건틀릿 컨트롤러(Gauntlet Controllers) 는 자동화 테스트 프레임워크(Automation Test Framework) 외부에서 자동화된 테스트를 구동하는 C++ 오브젝트입니다. 이는 특히 네트워킹이 관련되었을 때 런타임 기능을 테스트하기 위한 것입니다.
일반적으로 커스텀 플러그인에서 UGauntletTestController 클래스를 재구현하여 건틀릿 컨트롤러를 생성할 수 있습니다.
UGauntletTestController 에는 다음과 같이 테스트의 흐름을 제어하기 위해 재구현할 수 있는 몇 가지 메서드가 있습니다.
OnInit()- 컨트롤러 초기화 시 호출됩니다.OnPreMapChange()- 맵 변경 전에 호출됩니다.OnPostMapChange(UWorld* World)- 맵 변경 후에 호출됩니다.GetCurrentMap()은 새 맵을 반환합니다.OnTick(float TimeDelta)- 컨트롤러가 상태를 확인하고 제어할 수 있도록 주기적으로 호출됩니다.OnStateChange(FName OldState, FName NewState)- 모듈의 상태가 변경될 때 호출됩니다. 상태는 게임 기반입니다.
테스트가 완료되면 EndTest(ExitCode) 를 호출하여 게임 인스턴스에 상태를 전달합니다. UAT 건틀릿은 컨트롤러의 결과를 가져와 테스트로 승격합니다.
건틀릿 역할
건틀릿 테스트에서 건틀릿 컨트롤러를 사용하려면, 컨트롤러의 이름을 건틀릿 역할에 어태치해야 합니다. 다음 코드를 사용하여 이름을 어태치할 수 있습니다. 여기서는 이름을 UMyControllerName 이라고 가정합니다.
UnrealTestRole ClientRole = Config.RequireRole(UnrealTargetRole.Client);
ClientRole.Controllers.Add("MyControllerName");
여러 역할에 서로 다른 컨트롤러가 있을 수 있습니다.