수색…
통사론
- mock.Setup (expression) .Returns (value) // 표현식에서 메소드를 호출 할 때마다 value를 반환합니다.
매개 변수
매개 변수 | 세부 |
---|---|
표현 | 메서드 호출을 지정하는 람다 식입니다. |
인자없는 방법 조롱
interface Mockable {
bool DoSomething();
}
var mock = new Mock<Mockable>();
mock.Setup(x => x.DoSomething()).Returns(true);
var result = mock.Object.DoSomething(); //true
그들이 반환 한 것을 확인하는 방법을 조롱해라.
var logRepository = new Mock<ILogRepository>();
logRepository.Setup(x => x.Write(It.IsAny<Exception>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()))
.Verifiable();
이 경우 Verifiable을 사용하여 실행 여부를 확인합니다.
여기에 콜백을 사용할 수도 있습니다.
logRepository.Setup(x => x.Write(It.IsAny<Exception>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()))
.Callback<Exception, string, string, string, string, string>((ex, caller, user, machine, source, message) => { Console.WriteLine(message); });
이것은 메소드의 출력을 콘솔의 표준 출력에 기록합니다 (많은 테스트 프레임 워크가 출력을 그 러너로 캡처하게합니다)
Mocking protected members
보호 된 멤버를 조롱하려면 먼저 테스트 픽스처 상단에 다음을 포함시켜야합니다.
using Moq.Protected;
그런 다음 모의 객체에서 Protected()
를 호출 한 다음 일반 Setup<>
을 메서드의 반환 유형과 함께 사용할 수 있습니다.
var mock = new Mock<MyClass>();
mock.Protected()
.Setup<int>("MyProtectedGetIntMethod")
.Returns(1);
메서드가 void를 반환하면 비 제네릭 Setup()
을 사용합니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow