의존 동작의 대체
인터페이스의 대역을 만들어 특정 호출에 대한 반환값을 지정한다. 실제 외부 의존성을 실행하지 않고 시험 대상이 해당 결과를 어떻게 사용하는지 확인하는 데 쓰인다. 대역의 동작은 설정한 내용이므로 실제 구현과의 일치는 별도로 검증해야 한다.
호출과 인자
호출이 발생했는지 또는 발생하지 않았는지를 검사하고 인자의 값이나 조건을 비교할 수 있다. 여러 반환값을 순서대로 지정하거나 함수로 결과를 결정하는 방식도 제공한다. 결과 검증과 호출 방식 검증을 시험 목적에 맞게 구분한다.
클래스 대체의 한계
인터페이스 또는 클래스의 virtual 멤버에서 정상적으로 동작하도록 설계되어 있다. 비가상 멤버가 있는 클래스를 대체할 때는 실제 코드가 실행될 가능성을 고려해야 한다. 잘못된 사용을 찾는 분석기 패키지도 제공하므로 적용 범위와 함께 확인한다.
관련 문서
AutoFixture / Shouldly / xUnit NET / NUnit