[c#] C# 유닛 테스트와 셋업/티어다운

유닛 테스트는 소프트웨어 개발에서 매우 중요한 역할을 합니다. 특히 C#에서는 NUnit, MSTest, xUnit 등과 같은 유닛 테스트 프레임워크를 사용하여 테스트 케이스를 만들고 실행할 수 있습니다. 이번 블로그에서는 C#에서 유닛 테스트를 작성하고 셋업/티어다운 메서드를 활용하는 방법에 대해 알아보겠습니다.

유닛 테스트 작성하기

using NUnit.Framework;

public class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }
}

[TestFixture]
public class CalculatorTests
{
    private Calculator calculator;

    [SetUp]
    public void Setup()
    {
        calculator = new Calculator();
    }

    [Test]
    public void Add_WhenCalled_ReturnsSum()
    {
        int result = calculator.Add(3, 5);
        Assert.AreEqual(8, result);
    }
}

위의 코드는 Calculator 클래스와 이에 대한 유닛 테스트 코드를 보여줍니다. CalculatorTests 클래스에서 SetUp 메서드를 사용하여 각 테스트 메서드 실행 전에 Calculator 인스턴스를 초기화합니다. 그리고 Test 어트리뷰트를 사용하여 특정 메서드가 유닛 테스트 메서드임을 지정합니다.

셋업/티어다운 메서드 활용

클래스 수준의 SetUpTearDown 메서드를 사용하여 각 테스트 메서드 실행 전과 후에 특정 작업을 수행할 수 있습니다.

[TestFixture]
public class DatabaseTests
{
    private Database database;

    [SetUp]
    public void InitializeDatabase()
    {
        database = new Database("connectionString");
    }

    [TearDown]
    public void DisposeDatabase()
    {
        database.CloseConnection();
    }

    [Test]
    public void SaveData_WhenCalled_DataSavedSuccessfully()
    {
        // ...
    }
}

SetUp 메서드에서는 데이터베이스 연결과 같은 초기화 작업을 수행하고, TearDown 메서드에서는 정리 작업을 수행합니다.

이렇게 유닛 테스트 작성과 함께 셋업/티어다운 메서드를 활용하면 효율적으로 테스트를 관리할 수 있습니다.

마무리

C#에서 유닛 테스트를 작성하고 셋업/티어다운 메서드를 활용하는 방법에 대해 알아보았습니다. 효율적인 유닛 테스트 작성을 통해 안정적인 소프트웨어를 구축하는 데 도움이 될 것입니다.

참고 문헌: