정의

NSubstitute란?

.NET 에서 단위테스트 도구로 사용되는 DLL

환경구성

NSubstitude Nuget 설치

image

커맨드 창을 열어 다운받은 nuget.exe 파일 경로로 이동

커맨드라인 입력하여 실행

nuget.exe Install NSubstitute.Analyzers.CSharp -Version 1.0.15

image

DLL 파일을 저장하고자 하는 경로에 Import

  • 이때, Castle.Core.dll 파일도 같은 경로에 import 해야함

image

image

image {: width=”50%” height=”50%”}

Unity Play TestRunner 를 생성 한 후 Play Tests 파일에 Assembly References를 등록

image

Player TestRunner 생성 방법은 => TestRunner 참고

테스트

소스코드

  • 간단한 테스트를 통해 몇가지 함수를 확인
//Mock 생성을 위한 인터페이스 정의
public interface ITestObj
{
	public int PropertyValue { get; set; }
	public void DoNothing(int input);
	public int AddOne(int input);
}

// 단위테스트
public class TestTestObj
{
	ITestObj testObj;

	[SetUp]
	public void SetUp()
	{
		testObj = Substitute.For<ITestObj>(); // Mock Instance 생성
		testObj.AddOne(1).Returns(2); // 반환값이 있는 함수의 리턴값 정의
		testObj.PropertyValue.Returns(2); // Property 반환값 정의
	}

	[UnityTest]
	public IEnumerator TestTestObjAddOne()
	{
		Debug.Log($"AddOne(1) : {testObj.AddOne(1)}");
		Assert.AreEqual(2, testObj.AddOne(1));
		testObj.DoNothing(3);

		// 반환값이 없는 함수가 호출되었는지에 대한 검증
		testObj.Received().DoNothing(3);

		// 반환값이 없는 함수가 호출되지 않았는지에 대한 검증
		//testObj.DidNotReceive().AddOne(2);

		yield return null;
	}
}

결과

image


연결문서

태그:

카테고리:

업데이트:

댓글남기기