본문 바로가기

C#

WPF C# 애플리케이션 — Cody AI로 테스트 코드 자동 생성하는 방법

오늘은 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 앱을 만들어봅시다.