[단위테스트] xUnit AutoFixture 이용하여 랜덤 데이터 사용하기
- C#/단위테스트
- 2023. 2. 24. 19:21
목적
- 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
'C# > 단위테스트' 카테고리의 다른 글
[C#] C# gRPC 단위테스트 하기 (0) | 2023.03.01 |
---|---|
Blazor - bUnit 컴포넌트 서비스 주입 테스트 (0) | 2022.12.01 |
Blazor - bUnit 컴포넌트 Parameter 있는 이벤트 핸들러 테스트 (0) | 2022.12.01 |
Blazor - bUnit 컴포넌트 이벤트 핸들러 테스트 (0) | 2022.11.30 |
Blazor - bUnit 컴포넌트 내의 Parameter 단위 테스트 방법 (0) | 2022.11.30 |
이 글을 공유하기