[단위테스트] xUnit AutoFixture 이용하여 랜덤 데이터 사용하기

목적

  • C# xUnit 을 이용하여 단위테스트를 작성할 수 있습니다.
  • 단위 테스트를 진행할 때, 간혹 랜덤 데이터를 테스트때마다 필요로 하는 경우가 있습니다.
  • 이럴때 유용할게 사용할 수 있는 NuGet Package 가 있어서 소개 및 사용법에 대해서 알려 드리려고 합니다.
  • 바로, AutoFixture NuGet Package 를 이용하여 랜덤 데이터를 단위테스트에 적용할 수 있습니다.
  • 그럼 예제 코드를 통해서 보여 드리겠습니다.

AutoFixture 설치

  • 누겟 패키지 관리자에서 AutoFixture NuGet Package 를 설치 진행합니다.


단위테스트 코드 작성

  • AutoFixtrue 를 이용하여 랜덤 데이터 사용하는 예제코드를 아래와 같이 작성하였습니다.
  • 간단히 GetCount 라는 메서드를 테스트 진행하였습니다.
  • public void Test([Range(1, 20)]int count) 이와 같이 Range 를 지정해서 매번 테스트 진행할 때마다 범위안에 숫자가 랜덤으로 count에 대입하여 그 다음의 로직을 진행할 수 있도록 하였습니다.
  • 이렇게 AutoFixture 를 이용하여 간단히 랜덤 데이터를 사용할 수 있습니다.
using AutoFixture.Xunit2;
using System.ComponentModel.DataAnnotations;
using Xunit;

namespace AutoPixtureTest
{
    public static class TestClass
    {
        public static int GetCount(int cnt)
        {
            int count = 0;
            for(int i = 0; i < cnt; i++)
            {
                count++;
            }

            return count;
        }
    }

    public class UnitTest1
    {
        [Theory, AutoData]
        public void Test([Range(1, 20)]int count)
        {
            // Arrnage && Act
            int totalCount = TestClass.GetCount(count);

            // Assert
            Assert.Equal(totalCount, count);
        }
    }
}

실행 결과

  • 실행 결과, 매번 테스트 마다 count의 값이 달라지는 것을 확인할 수 있습니다.

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY