본문 바로가기
카테고리 없음

[Unity3D] UnitTest 새로운 스크립트 만들어서 테스트 해보기

by 사랑파워 2021. 5. 17.

StudyUnitTestManager 라는 새로운 스크립트를 만들어 본다

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class StudyUnitTestManager : MonoBehaviour
{
    public int ReturnPlusValue(int a, int b)
    {
        int sum = a + b;
        return sum;
    }

    public int ReturnMinusValue(int a, int b)
    {
        int sum = a - b;
        return sum;
    }
}

a와 b 값을 더하거나 뺄때의 값을 산출하는 함수를 만들었다.

 

 

저번에 만들어 뒀던 NewTestScript 안에 내용을 전부 지운 후 새롭게 스크립트를 작성한다

using System.Collections;
using System.Collections.Generic;
using NUnit.Framework;
using UnityEngine;
using UnityEngine.TestTools;

namespace Tests
{
    public class NewTestScript
    {
        /// <summary>
        /// 테스트 이름을 한글로 하여 테스트 할 때 어떤 테스트 인지 더욱 직관적으로 확인 할 수 있게 하였다.
        /// </summary>
        [Test]
        public void 덧셈성공()
        {
            StudyUnitTestManager studyUnityTestManager = new StudyUnitTestManager();
            // 1 + 2 값이 3과 같은지 테스트 한다.
            Assert.AreEqual(studyUnityTestManager.ReturnPlusValue(1, 2), 3);
        }

        [Test]
        public void 뺄셈성공()
        {
            StudyUnitTestManager studyUnityTestManager = new StudyUnitTestManager();
            // 1 - 2 값이 -1과 같은지 테스트 한다.
            Assert.AreEqual(studyUnityTestManager.ReturnMinusValue(1, 2), -1);
        }
    }
}

 

이렇게 작성을 하면 StudyUnitTestManager를 찾을 수 없다는 에러가 뜬다.

Assembly 를 찾을 수 없다는 에러가 뜨는데 Assembly에 대해서 자세히 아는 바 가 없어 Unity Manual 링크를 남겨둔다.

나중에 좀 더 자세히 찾아 본 후 이 부분도 작성 해 보도록 하겠다

https://docs.unity3d.com/kr/2019.4/Manual/ScriptCompilationAssemblyDefinitionFiles.html

 

어셈블리 정의 - Unity 매뉴얼

프로젝트의 스크립트를 어셈블리에 정리하기 위해 어셈블리 정의를 만들 수 있습니다. 폴더에 어셈블리 정의 에셋을 만들면 Unity는 폴더의 모든 스크립트를 이용하여 별도의 관리되는 어셈블리

docs.unity3d.com

일단 Assembly 에러를 해결 하기 위해 Assets 폴더에 만들어 둔 StudyUnitTestManager 를 Tests 폴더에 넣어주면

에러가 사라진다.

지금은 임시방편으로 이렇게 작업 하지만 나중에 Tests폴더 외에 있는 스크립트도 테스트 할 수 있는 방법을 리뷰 하도록 하겠다

 

TestRunner 창을 보면 덧셈성공, 뺄셈성공 테스트가 생성 된 걸 볼 수 있다

Run All을 클릭해보면 테스트 성공이 나타난다.

뺄셈성공의 합계 값을 변경 한 후

        [Test]
        public void 뺄셈성공()
        {
            StudyUnitTestManager studyUnityTestManager = new StudyUnitTestManager();

            Assert.AreEqual(studyUnityTestManager.ReturnMinusValue(1, 2), 0);
        }

다시 테스트를 해보면

테스트 실패가 뜨며 왜 실패 했는지 결과도 하단에 나타난다.

새로운 스크립트를 사용하여 Unit Test 완료

댓글