[C# 단위테스트] xUnit FluentAssertions 이용하여 숫자형 테스트 하기

소개

  • 앞서 xUnit을 이용하여 C#에서 단위테스트를 진행하는 방법에 대해서 학습하였습니다.
  • 또한, xUnit에서 보다 직관적으로 단위테스트를 작성할 수 있도록 FluentAssertions 누겟 패키지 사용하는 방법도 설명 드렸습니다.
  • 혹시 모르시는 분들을 위해 참조를 걸어 두겠습니다.
  • 오늘은 xUnit에서 FluentAssertions 이용하여 숫자형인 정수형, 실수형인 타입을 단위테스트 하는 방법에 대해서 알려 드리려고 합니다.
  • 바로 예제 코드 작성을 통해서 보여 드리도록 하겠습니다.


참조



1. 테스트 기본이 되는 코드 작성

  • 단위테스트를 진행하기 위해서는 단위테스트를 진행할 기본 클래스 및 메서드가 있어야 합니다.
  • 이해하기 쉽게, Calculate 클래스를 선언하고 Add 메서드를 작성하여 테스트 진행하도록 하겠습니다.
using System;

namespace xUnitProgram
{
    public class Calculate
    {
        public int AddInt(int num1, int num2)
        {
            return num1 + num2;
        }

        public float AddFloat(float num1, float num2)
        {
            return num1 + num2;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {

        }
    }
}


2. 단위테스트 진행할 테스트 코드 작성하기

  • 앞서 단위테스트 진행할 기본 베이스 코드를 작성하였습니다.
  • 이제 xUnit 테스트 프로젝트를 생성 후, 숫자형 메서드를 단위테스트 진행해 보도록 하겠습니다.
  • 참고로 단위테스트 대상이되는 메서드는 반드시 public 형식이어야 합니다.
using FluentAssertions;
using Xunit;
using xUnitProgram;

namespace Number_Test
{
    public class UnitTest1
    {
        [Fact]
        public void Assert_Int()
        {
            // Arrange
            Calculate calc = new();

            // Act
            int result = calc.AddInt(2, 3);

            // Arrert
            // result = 5
            result.Should().Be(5);

            // reuslt != 7
            result.Should().NotBe(7);

            // 1 <= result <= 10
            result.Should().BeInRange(1, 10);

            // result > 5 || reuslt == 5
            result.Should().BeGreaterThanOrEqualTo(5);

            // result < 3 || result == 3
            result.Should().BeGreaterThanOrEqualTo(3);

            // result > 4
            result.Should().BeGreaterThan(4);

            // result < 5 || result == 5
            result.Should().BeLessThanOrEqualTo(5);

            // result < 6
            result.Should().BeLessThan(6);

            // result > 0
            result.Should().BePositive();

            // result == 3 || result == 5
            result.Should().BeOneOf(new[] { 3, 5 });
        }

        [Fact]
        public void Assert_Float()
        {
            // Arrange
            Calculate calc = new();

            // Act
            float result = calc.AddFloat(10.0f, 2.2f);

            // Assert
            result.Should().BeApproximately(12.2f, 0.01f);
        }
    }
}


3. 실행 결과

  • 단위테스트 진행 결과 정수형, 실수형 모두 테스트를 정상적으로 통과하였습니다.

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY