이 문서에서는 Visual Studio 명령 및 GitHub Copilot의 도움을 받아 xUnit 프레임워크를 사용하여 C#에서 단위 테스트 및 테스트 프로젝트를 생성하는 방법을 살펴봅니다. Visual Studio를 GitHub Copilot와 함께 사용하면 단위 테스트를 생성하고 작성하는 프로세스가 크게 간소화됩니다.
테스트 프로젝트 만들기
및 인터페이스에 ProductService
의존하는 메서드가 GetProductById
있는 클래스가 IProductDataStorage
ICacheClient
있다고 상상해 보십시오.
public class ProductService(
IProductDataStorage productDataStorage,
ICacheClient cacheClient)
{
public async Task<Product?> GetProductById(int productId)
{
var product = await cacheClient.GetProduct(productId);
if (product is not null)
{
return product;
}
product = await productDataStorage.GetProduct(productId);
if (product is not null)
{
await _cacheClient.SetProduct(product);
}
return product;
}
}
테스트 프로젝트 및 스텁 메서드를 생성하려면 다음 단계를 수행합니다.
- 메서드를 선택합니다.
- 마우스 오른쪽 단추를 클릭하고 단위 테스트 만들기를 선택합니다.
단위 테스트 만들기 대화 상자의 테스트 프레임워크 드롭다운 메뉴에서 xUnit을 선택합니다.
비고
단위 테스트 만들기 명령은 기본적으로 MSTest 프레임워크로 설정됩니다. 그러나 이 예제에서는 xUnit을 사용하므로 Visual Studio 확장 xUnit.net.TestGenerator2022를 설치해야 합니다.
- 테스트 프로젝트가 아직 없는 경우 새 테스트 프로젝트를 선택하거나 기존 프로젝트를 선택합니다.
- 필요한 경우 네임스페이스, 클래스 및 메서드 이름에 대한 템플릿을 지정한 다음 확인을 클릭합니다.
몇 초 후에 Visual Studio에서 필요한 패키지를 가져오고 필요한 패키지 및 구조, 테스트 ProductServiceTests
중인 프로젝트에 대한 참조, 클래스 및 스텁 메서드를 사용하여 생성된 xUnit 프로젝트를 가져옵니다.
테스트 자체 생성
다시 테스트할 메서드를 선택합니다.
마우스 오른쪽 단추를 클릭하고 코필로트 요청을 선택합니다.
다음과 같은 간단한 프롬프트를 입력합니다.
"xunit, nsubstitute를 사용하여 단위 테스트를 생성하고 결과를 #ProductServiceTests 파일에 삽입합니다."
문자를 입력할 때 테스트 클래스를
#
선택해야 합니다.
팁 (조언)
빠른 검색을 위해 별도의 탭에서 여는 것이 ProductServiceTests
좋습니다.
프롬프트를 실행하고 수락을 클릭하면 코필로트가 테스트 코드를 생성합니다. 그 후에는 필요한 패키지를 설치해야 합니다.
패키지가 설치되면 테스트를 실행할 수 있습니다. 이 예제는 첫 번째 시도에서 작동했습니다. Copilot는 NSubstitute를 사용하는 방법을 알고 있으며 모든 종속성은 인터페이스를 통해 정의되었습니다.
.NET