테스트 프로젝트 설정
유닛 테스트 프로젝트 추가 및 설정
- 솔루션 탐색기에서 솔루션을 마우스 오른쪽 버튼으로 클릭하고 새 프로젝트 추가를 선택합니다.
- **xUnit Test Project (.NET Core)**를 선택하고 다음을 클릭합니다.
- 프로젝트 이름을 입력하고 만들기를 클릭합니다.
xUnit 패키지 설치
xUnit
패키지가 이미 설치되어 있을 수 있지만, 없는 경우 NuGet 패키지 관리자를 통해 설치합니다.
- 솔루션 탐색기에서 테스트 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 관리를 선택합니다.
- 찾기 탭에서
xunit
을 검색하고 설치합니다.
예제 유닛 테스트 작성
유닛 테스트를 작성하여 Singleton<T>
클래스의 기능을 테스트합니다.
using System;
using System.IO;
using Xunit;
public class SingletonTests
{
[Fact]
public void TestSingletonInstance()
{
// Arrange & Act
var instance1 = TestSingleton.Instance;
var instance2 = TestSingleton.Instance;
// Assert
Assert.NotNull(instance1);
Assert.Same(instance1, instance2); // Both should point to the same instance
}
[Fact]
public void TestLoadReturnsNullWhenFileDoesNotExist()
{
// Arrange
var path = Singleton<TestSingleton>.GetPath();
if (File.Exists(path))
{
File.Delete(path); // Ensure the file does not exist
}
// Act
var result = Singleton<TestSingleton>.Load();
// Assert
Assert.Null(result);
}
[Fact]
public void TestSaveAndLoad()
{
// Arrange
var instance = TestSingleton.Instance;
instance.Value = 42;
instance.Save();
// Act
var loadedInstance = Singleton<TestSingleton>.Load();
// Assert
Assert.NotNull(loadedInstance);
Assert.Equal(42, loadedInstance.Value);
}
}
public class TestSingleton : Singleton<TestSingleton>
{
public int Value { get; set; }
}
설명
- SingletonTests 클래스는
xUnit
프레임워크를 사용하여Singleton<T>
클래스의 다양한 기능을 테스트합니다. - TestSingleton 클래스는
Singleton<T>
를 상속받아 테스트에 사용할 간단한 속성을 추가합니다.
TestSingletonInstance
: 싱글톤 인스턴스가 동일한 객체를 반환하는지 확인합니다.TestLoadReturnsNullWhenFileDoesNotExist
: 파일이 존재하지 않을 때Load
메서드가null
을 반환하는지 확인합니다.TestSaveAndLoad
: 객체를 저장하고 다시 로드할 때 값이 유지되는지 확인합니다. 이 예제는Singleton<T>
클래스의 주요 기능을 테스트하는 방법을 보여줍니다. 추가적인 테스트가 필요할 경우 유사한 방식으로 테스트 케이스를 작성할 수 있습니다.