위키득계정 ↗
기술

Moq

분류
모킹 라이브러리
적용 환경
.NET
주요 표현
람다와 표현 트리
주요 기능
동작 설정과 호출 검증
Moq는 .NET 시험에서 의존 객체의 동작을 설정하고 호출을 검증하는 모킹 라이브러리다. 람다와 표현 트리를 활용해 타입에 맞는 기대 조건을 작성할 수 있다.

설정과 대역의 실행

대역에 대한 호출과 반환값을 설정하고 대상 코드에 해당 객체를 전달한다. 실제 외부 의존성이 없어도 특정 조건에서의 반응을 시험할 수 있다. 설정된 결과를 돌려받는 것과 실제 서비스의 동작을 확인하는 것은 다른 시험 범위다.

상태와 상호작용

시험 결과의 상태를 확인하거나 특정 메서드가 어떤 인자로 호출되었는지 검증할 수 있다. 호출 횟수 조건도 사용할 수 있다. 모든 시험에서 호출 검증이 필요한 것은 아니므로 반환 결과와 상호작용 중 무엇을 보장하려는지 먼저 정한다.

버전별 구조

공식 저장소는 현재 기본 브랜치가 차기 v5를 다루며 안정 v4 소스는 별도 브랜치에 있다고 안내한다. v4는 Castle DynamicProxy를 사용하지만 다른 계열의 예제를 같은 방식으로 적용해서는 안 된다. 설치한 주요 버전에 맞는 API와 문서를 확인한다.

관련 문서

FakeItEasy / NSubstitute / AutoFixture / xUnit NET