[c#] C# 유닛 테스트와 파라미터화된 테스트

C#에서 유닛 테스트는 매우 중요한 소프트웨어 개발 관행 중 하나입니다. 유닛 테스트를 통해 작성한 코드의 품질을 보장하고, 변경 사항이 기존 코드에 영향을 미치는지 여부를 쉽게 확인할 수 있습니다. 또한 파라미터화된 테스트를 사용하여 여러 가지 입력 값에 대한 테스트를 단순화할 수 있습니다.

유닛 테스트 작성하기

다음은 C#에서의 유닛 테스트를 작성하는 간단한 예시입니다.

using System;
using Xunit;

namespace MyProject.Tests
{
    public class MathTests
    {
        [Fact]
        public void Add_TwoNumbers_ReturnsSum()
        {
            // Arrange
            var math = new Math();

            // Act
            var result = math.Add(2, 3);

            // Assert
            Assert.Equal(5, result);
        }
    }
}

위의 예시에서 Add_TwoNumbers_ReturnsSum 유닛 테스트는 Math 클래스의 Add 메서드를 테스트합니다.

파라미터화된 테스트 작성하기

파라미터화된 테스트를 사용하면 여러 가지 입력 값에 대해 유닛 테스트를 한 번에 수행할 수 있습니다. 다음은 C#에서의 파라미터화된 테스트를 작성하는 예시입니다.

using System;
using Xunit;

namespace MyProject.Tests
{
    public class MathTests
    {
        [Theory]
        [InlineData(2, 3, 5)]
        [InlineData(0, 0, 0)]
        [InlineData(10, -5, 5)]
        public void Add_ValidNumbers_ReturnsExpectedValue(int a, int b, int expectedResult)
        {
            // Arrange
            var math = new Math();

            // Act
            var result = math.Add(a, b);

            // Assert
            Assert.Equal(expectedResult, result);
        }
    }
}

위의 예시에서 Add_ValidNumbers_ReturnsExpectedValue 유닛 테스트는 Math 클래스의 Add 메서드를 여러 가지 입력 값에 대해 테스트합니다.

결론

C#에서 유닛 테스트를 작성하는 데에는 Xunit, NUnit, MSTest 등 다양한 도구가 있습니다. 또한 파라미터화된 테스트를 사용하면 여러 가지 다양한 입력 값에 대한 유닛 테스트를 간편하게 작성할 수 있습니다.


참고 문헌: