Mock
- 단위 테스트를 작성할 때 실제 클래스를 호출하기가 어려울 때가 있습니다.
- ex> 호출에 의해 특정 리소스가 변경되거나, 호출 시 불러오는 값이 고정되지 않은 경우.
- 이때는 고정값을 반환하는 객체인 목(mock)을 사용해서 테스트하는 것이 수월합니다.
Mock의 특징
- 목 객체를 활용한 테스트는 직접 개발자가 목 객체를 만들어야 합니다.
- 목을 사용하면 코딩의 양도 늘고, 실행 시간도 늘어나서 목에 의존하지 않는 메서드를 설계해야합니다.
- 목을 사용해야만 테스트가 가능한 메서드가 있습니다.
- 이미 만들어져 있는 목 프레임워크를 활용하여 쉽게 목 객체 활용이 가능합니다.
- 해당 라이브러리만 세팅하면 쉽게 목 객체를 활용 가능합니다.
- 테스트 가능한 코드를 설계하면서 코드의 품질을 향상시키는 데 도움이 됩니다.
Mock 라이브러리
- NMock
- Moq
- Microsoft Fakes
- 이외 다수
단위 테스트하기 쉬운 코드
- 바로 값을 반환하므로 단위 테스트가 쉽게 가능합니다.
private static int CalcPrice_easy (int count, int price)
{
return count + price;
}
단위 테스트하기 어려운 코드
- 사용자 입력이 필요한 메서드이므로 단위 테스트하기 어렵습니다.
private static int CalcPrice_hard (int price)
{
var s = Console.ReadLine();
int count;
int.TryParse(s, out count);
return count + price;
}
'프로그래밍 > (도서)C#코딩의기술-실전' 카테고리의 다른 글
[C#] 코딩의기술(실전편) - 3.2 First VS Single (0) | 2022.03.31 |
---|---|
[C#] 코딩의기술(실전편) - 3.1 First와 FirstOrDefault (0) | 2022.03.31 |
[C#] 코딩의기술(실전편) - 2.11 TryParse에서 결과를 보지 않는 경우 (0) | 2022.03.31 |
[C#] 코딩의기술(실전편) - 2.9 Goto 구문 (0) | 2022.03.31 |
[C#] 코딩의기술(실전편) - 2.7 포인터 (0) | 2022.03.31 |