수색…


통사론

  • 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