본문 바로가기
Programming

C# 모듈화와 테스트

by 나무수피아는 지식의 가지를 뻗어가는 공간입니다. 2025. 12. 16.
반응형

프로젝트 구조화

코드를 작은 모듈로 나누어 관리하면 유지보수성과 재사용성이 향상됩니다. C#에서는 다음과 같이 구조화할 수 있습니다.

  • Domain Layer - 핵심 비즈니스 로직
  • Application Layer - 서비스, 유스케이스 처리
  • Infrastructure Layer - 데이터베이스, 외부 API 연동
  • Presentation Layer - 사용자 인터페이스
Solution
 ├── Project.Domain
 ├── Project.Application
 ├── Project.Infrastructure
 ├── Project.API
 └── Project.Tests
    

Unit Test와 Mock 사용

xUnit으로 단위 테스트

xUnit은 C#에서 널리 쓰이는 테스트 프레임워크입니다.

using Xunit;

public class CalculatorTests
{
    [Fact]
    public void Add_ReturnsCorrectSum()
    {
        var calc = new Calculator();
        var result = calc.Add(2, 3);
        Assert.Equal(5, result);
    }
}
    

Moq로 Mock 객체 생성

Moq는 인터페이스나 클래스를 가짜(Mock)로 만들어 테스트할 수 있게 도와주는 라이브러리입니다.

using Moq;
using Xunit;

public interface IMessageService
{
    void Send(string message);
}

public class Notification
{
    private readonly IMessageService _service;
    public Notification(IMessageService service) => _service = service;

    public void Alert(string msg) => _service.Send(msg);
}

public class NotificationTests
{
    [Fact]
    public void Alert_CallsSendMethod()
    {
        var mockService = new Mock<IMessageService>();
        var notification = new Notification(mockService.Object);

        notification.Alert("Hello!");

        mockService.Verify(s => s.Send("Hello!"), Times.Once);
    }
}
    

NuGet 패키지 사용법

NuGet은 .NET 라이브러리나 툴을 쉽게 설치할 수 있는 패키지 매니저입니다.

패키지 설치 방법

  • Visual Studio에서 도구 → NuGet 패키지 관리자 → 패키지 관리자 콘솔 열기
  • 콘솔에 명령어 입력
Install-Package xunit
Install-Package Moq
    

Visual Studio UI로 설치

프로젝트에서 NuGet 패키지 관리 → 검색 → 설치 버튼 클릭

반응형

'Programming' 카테고리의 다른 글

C# 파일 입출력  (31) 2025.12.15
C# 예외 처리  (13) 2025.12.14
C# NET Core  (0) 2025.12.13
C# WPF/WinForms UI 프로그래밍  (0) 2025.12.12
C# LINQ(Language Integrated Query)  (0) 2025.12.11