오늘은 C# WPF 애플리케이션을 개발할 때
테스트 코드를 일일이 손으로 작성하지 않고,
AI를 활용해서 자동으로 테스트를 만드는 방법을 소개하려고 합니다.
바로 Sourcegraph Cody AI를 활용하는 방법입니다.
🤔 테스트 코드, 왜 필요한가요?
WPF 애플리케이션을 개발하다 보면,
UI는 정상인데 데이터 흐름이 꼬이거나,
비즈니스 로직이 잘못 동작하는 경우를 자주 겪습니다.
이때 테스트 코드가 자동으로 검증해주는 습관을 들이면
- 버그가 줄고
- 코드가 안정적이며
- 리팩토링이 쉬운 프로그램이 완성됩니다.
하지만 테스트 코드를 일일이 작성하는 것은 시간이 많이 들고, 귀찮죠.
그래서 AI 도구 Cody를 사용하면 테스트 코드를 자동으로 쉽게 만들 수 있습니다.
💡 Cody AI란 무엇인가요?
Cody AI는 Sourcegraph에서 만든
코드 분석 & 생성용 AI 도구입니다.
- 주석을 해석해서 코드를 자동으로 생성
- 테스트 코드를 자동 추천
- 코드 설명, 리팩토링, 문서 작성 보조
Visual Studio, VS Code에서 사용할 수 있고,
특히 xUnit, NUnit, Moq 같은 테스트 작성에도 강력한 도우미입니다.
⚙️ Cody AI 설치 방법
①Sourcegraph 가입
https://sourcegraph.com
사이트에서 무료 가입합니다.
②Visual Studio 확장 설치
- Visual Studio Extensions → Cody AI 검색 → 설치
- 또는 VS Code라면 Extensions → Cody 검색 → 설치
③API Key 등록
Sourcegraph 홈페이지에서 발급받은 API Key를
Cody 설정창에 등록하면 준비 완료!
💻 실전 예제: 간단한 ViewModel 테스트
WPF에서는 주로 ViewModel을 테스트합니다.
예를 들어 CalculatorViewModel이 있다고 가정해 보겠습니다.
🔹 ViewModel 코드
public class CalculatorViewModel
{
public int Add(int a, int b) => a + b;
}
😍 Cody AI를 사용한 테스트 자동 생성
Cody Chat에 아래와 같이 입력합니다.
"Create unit test for CalculatorViewModel.Add method using xUnit"
Cody는 자동으로 이런 테스트 코드를 만들어줍니다.
using Xunit;
public class CalculatorViewModelTests
{
[Fact]
public void Add_ShouldReturnCorrectSum()
{
var vm = new CalculatorViewModel();
var result = vm.Add(2, 3);
Assert.Equal(5, result);
}
}
이렇게 몇 줄만 입력하면 테스트 코드 뼈대가 자동 생성됩니다.
수동 작성보다 훨씬 빠릅니다.
❤️ Mock 객체도 자동 생성!
WPF ViewModel은 주로 Service나 Repository 같은
외부 의존 객체와 통신합니다.
public interface IUserService
{
string GetUserName(int id);
}
public class UserViewModel
{
private readonly IUserService _userService;
public UserViewModel(IUserService userService) => _userService = userService;
public string LoadUserName(int id) => _userService.GetUserName(id);
}
이 경우 Cody AI에게 이렇게 명령을 입력합니다.
"Create unit test for UserViewModel using Moq and xUnit"
그러면 Cody가 Mock 기반 테스트도 자동으로 작성해줍니다.
using Moq;
using Xunit;
public class UserViewModelTests
{
[Fact]
public void LoadUserName_ShouldReturnCorrectUserName()
{
var mockService = new Mock<IUserService>();
mockService.Setup(s => s.GetUserName(1)).Returns("TOSUN");
var vm = new UserViewModel(mockService.Object);
var result = vm.LoadUserName(1);
Assert.Equal("TOSUN", result);
}
}
이렇게 Mock을 포함한 테스트 코드도 Cody가 대신 작성해주니, 테스트 작성 속도가 획기적으로 빨라집니다.
💡 Cody AI 테스트 자동 생성의 장점
⏱ 시간 절약 | 테스트 스켈레톤을 AI가 자동으로 생성해줍니다. |
💻 코드 품질 향상 | TDD 스타일을 자연스럽게 연습할 수 있습니다. |
📄 테스트 문서화 | 테스트 이름이 명확해져, 코드 이해도가 올라갑니다. |
🔧 Mock 테스트 지원 | Moq 기반 Mock 객체도 자동으로 추천 작성해줍니다. |
⚠️ 주의사항
① Cody가 만들어준 코드는 100% 완성품이 아닙니다.
→ 사람의 눈으로 꼭 검토하고, 수정하세요.
② 테스트 커버리지는 AI가 완벽히 계산하지 않습니다.
→ 꼭 필요한 케이스는 직접 추가하세요.
③ UI 요소 테스트는 어렵습니다.
→ WPF에서는 ViewModel 테스트를 우선하는 것이 좋습니다.
✅ 마무리
C# WPF 애플리케이션 개발에서
테스트 코드는 버그를 줄이고, 안전하게 리팩토링하기 위한 필수품입니다.
Cody AI를 활용하면,
테스트 코드 작성이 더 이상 귀찮은 일이 아니라,
AI와 협업하는 즐거운 과정으로 바뀝니다.
👉 오늘부터 여러분의 프로젝트에도 Cody를 활용해서
테스트 자동화를 시작해보세요!
테스트 먼저, 코드는 나중! TDD 생활화로 탄탄한 WPF 앱을 만들어봅시다.
'C#' 카테고리의 다른 글
C# TDD 실전 예제: 계산기부터 배우는 테스트 주도 개발 (0) | 2025.04.13 |
---|---|
C#/WPF 애플리케이션에서 데이터 기반 테스트(DDT) 구축하기 (0) | 2024.10.30 |
C#으로 비동기 프로그래밍 이해하기 (0) | 2024.10.28 |
C#에서 Dependency Injection (의존성 주입) 이해하기 (0) | 2024.10.27 |
C#으로 간단한 로깅 시스템 구축하기 (3) | 2024.10.27 |