반응형
프로젝트 구조화
코드를 작은 모듈로 나누어 관리하면 유지보수성과 재사용성이 향상됩니다. 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 |