Unity 테스트 코드 정보

3873 단어 C#Unity
처음 Unity에서 테스트 코드를 배웠으므로 비망록으로 남겨 둡니다.

Unity 프로젝트 만들기



테스트 개발을 위해 Unity 프로젝트를 새로 만듭니다.



Unity Test Ruuner 활용



Unity의 표준으로 탑재된 테스트 툴입니다.
Unity 메뉴 화면에서 Window>General>Test Runner에서 열 수 있습니다.

테스트 방법에는 두 가지 방법이 있습니다.
Play 모드: 실제로 백그라운드에서 앱을 실행하면서 테스트합니다.
Edit 모드: 별도로 Edit 모드용 파일을 추가하여 테스트할 수 있습니다. 테스트시의 앱 기동은 하지 않습니다.

테스트할 파일 만들기



테스트할 파일을 준비합니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SoundManager : MonoBehaviour
{

    public static SoundManager instance;


    private void Awake()
    {
        if(instance == null)
        {
            instance = this;
            DontDestroyOnLoad(this.gameObject);
        }
        else
        {
            Destroy(this.gameObject);

        }
    }
    //--シングルトン終わり--
    public AudioSource audioSourceBGM; //BGMのスピーカー
    public AudioClip[] audioClipsBGM; //BGMの素材 (0:Title, 1:Town, 2:Quest, 3:Battle)

    public AudioSource audioSourceSE; //SEのスピーカー
    public AudioClip[] audioClipsSE; //ならす素材
    private string v;

    public SoundManager(string v)
    {
        this.v = v;
    }

    public void StopBGM()
    {
        audioSourceBGM.Stop();
    }

    public void StopSE()
    {
        audioSourceSE.Stop();
    }

    // Start is called before the first frame update
    void Start()
    {
        PlayBGM("Title");

    }

    public void PlayBGM(string sceneName)
    {
        audioSourceBGM.Stop();
        switch (sceneName)
        {
            default:
            case "Title":
                audioSourceBGM.clip = audioClipsBGM[0];
                break;
            case "Town":
                audioSourceBGM.clip = audioClipsBGM[1];
                break;
            case "Quest":
                audioSourceBGM.clip = audioClipsBGM[2];
                break;
            case "Battle":
                audioSourceBGM.clip = audioClipsBGM[3];
                break;

        }
        audioSourceBGM.Play();

    }



    public void PlaySE(int index)
    {
        audioSourceSE.PlayOneShot(audioClipsSE[index]); //SEを一度鳴らす

        this.count = 0;
    }

    public int count { get; private set; }
    public int GetName() { return this.count; }


}


백그라운드 BGM의 설정이나 버튼 클릭시에 소리가 울리는 설정을 하고 있습니다.

버튼이 울릴 때 PlaySE가 기동됩니다만, 그 때 카운트에 0을 대입하도록 하고 있습니다.

테스트 코드 작성



테스트하는 코드를 작성합니다.
TestRunner 화면에서 Tests 폴더를 만들어 테스트 파일을 만듭니다.
using System.Collections;
using System.Collections.Generic;
using NUnit.Framework;
using UnityEngine;
using UnityEngine.TestTools;


namespace Tests
{
    public class NewTestScript
    {


        // A UnityTest behaves like a coroutine in Play Mode. In Edit Mode you can use
        // `yield return null;` to skip a frame.


        [UnityTest]
        public IEnumerator SoundManagerTest()
        {
            var x = new SoundManager("count");

            //start()
            Assert.AreEqual(0,x.GetName());
            yield return null;

        }
    }
}


count의 값과 예측값을 비교해 맞으면 테스트가 통과하도록 하고 있습니다.

테스트



테스트 코드를 작성한 후 테스트합니다.
이번에는 Play 모드로 실행하고 있습니다.



왼쪽 상단의 Run All에서 테스트를 실행합니다.
결과가 정확하면 모든 녹색 체크가 붙습니다.

요약



Unity에서 테스트 개발을 위한 절차를 작성했습니다.
Play 모드와 Edit 모드를 선택할 수 있으므로 필요에 따라 구분하십시오.
테스트할 파일을 준비하고 테스트 코드를 준비해야 합니다.

좋은 웹페이지 즐겨찾기