TIL

[멋쟁이사자처럼 부트캠프 TIL회고] 65일차 : TestRunner

Cadi 2025. 1. 25. 20:17

 

 

 

오늘의 목표

1. TestRunner, 혹은 테스트 관련 공부

2. Event 함수 관련 공부  ? ?  ? 

3. 맵제작 약간. 

 

 

 

 

TestRunner

 

Unity Test Runner

  • 유니티에서 제공하는 자동화 테스트 프레임워크
  • NUnit 기반으로 동작
  • 유닛 테스트 (Edit Mode Tests) 와 플레이 모드 테스트 (Play Mode Tests) 가 있음

유닛 테스트 (Edit Mode Tests)

  • Edit Mode에서 실행되는 테스트
  • 플레이 모드를 사용하지 않고도 진입 가능
  • 주로 코드를 테스트하는 데에 사용
  • 빠르고 독립적인 테스트 수행이 가능

플레이 모드 테스트 (Play Mode Tests)

  • Unity의 PlayMode에서 실행되는 테스트
  • 게임 오브젝트, 씬 , 물리 엔진 등 Untiy 환경에 의존적인 테스트를 수행할 때 사용
  • 실행 속도가 느릴 수 있으나, 실제 게임 동작 검증 가능

 

Assert class

테스트 결과를 확인하는 데 사용하는 핵심 도구. 테스트 메서드에서 특정 조건이 충족되지 않으면 테스트가 실패로 처리됨 

 

 

자주 사용하는 함수들

1. 값 비교 관련 함수

  • Assert.AreEqual(expected, actual, message = null) : 두 값이 같은지 테스트, 다르면 실패
  • Assert.AreNotEqual(expected, actual, message = null) :  두 값이 다른지 테스트, 같으면 실패

2. 참조 상태 관련

  • Assert.IsNull(object, message = null) : 객체가 null인지 테스트
  • Assert.IsNuotNull( object, message = null) 객체가 null이 아닌지 테스트

3. 조건 확인

  • Assert.IsTrue(condition, message = null) : 조건이 참인지 확인
  • Assert.IsFalse(condition, message = null) 조건이 거짓인지 확인

4. 예외 처리

  • Assert.Throws<TException>(TestDelegate, message = null) : 특정 코드가 예외를 던지는지 테스트 
Assert.Throws<System.DivideByZeroException>(() => {
    int x = 1 / 0;
});

 

  • Assert.DoesNotThrow(TestDelegate, message = null) : 특정 코드가 예외를 던지지 않는지 테스트

5. 범위 테스트

  • Assert.Greater (actual, expected, message = null) : 값이 기준보다 큰지 확인
  • Assert.Less ( actual, expected, message = null) : 값이 기준보다 작은지 확인
  • 둘다 GreaterOrEqual, LessOrEqual 도 존재한다. 

 

왜 사용하는가 ?

  • 자동화된 테스트 : 코드 실행 및 검증을 자동화하여 반복 작업을 줄일 수 있음
  • 결과와 디버깅 정보 제공 : 실패한 테스트의 위치와 원인을 명확하게 알려줌
  • 테스트 환경 분리 : Edit mode와 PlayMode로 분리해서 검증 가능
  • 재현 가능한 테스트 
  • 성능과 안정성 검증

* 프레임 워크 
: 소프트웨어 개발을 위한 기본적인 구조와 기능을 제공하는 일종의 뼈대

 

 

 

 

Unity Event


이 코드를 보고 유니티 이벤트 시스템에 대해 공부하고 싶어서 공부했다. 

정리는 다른 글에 ! 

https://febelo0524.tistory.com/104

 

Unity Event System

Unity Event System : UI와 상호작용하거나 게임오브젝트간 이벤트를 처리하기 위한 중앙 관리자 역할 역할이벤트 라우팅 : 특정 입력(클릭, 터치)를 적절한 요소나 게임 오브젝트로 전달이벤트 처리

febelo0524.tistory.com