moq
Kpiące zachowanie
Szukaj…
Składnia
- mock.Setup (wyrażenie) .Returns (wartość) // Za każdym razem, gdy wywołana metoda w wyrażeniu zwróci wartość
Parametry
Parametr | Detale |
---|---|
wyrażenie | Wyrażenie Lambda, które określa wywołanie metody. |
Wyśmiewanie metody bez argumentu
interface Mockable {
bool DoSomething();
}
var mock = new Mock<Mockable>();
mock.Setup(x => x.DoSomething()).Returns(true);
var result = mock.Object.DoSomething(); //true
Kpiny z nieważnych metod w celu potwierdzenia zwrotu
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();
W takim przypadku używamy opcji Weryfikowalne, aby zapewnić jej działanie.
Możemy również użyć oddzwonienia tutaj:
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); });
spowoduje to zapisanie danych wyjściowych z metody na standardowe dane wyjściowe w konsoli (wiele środowisk testowych pozwala przechwycić dane wyjściowe do ich programu uruchamiającego)
Szydząc z chronionych członków
Aby wyśmiewać chronionego członka, musisz najpierw umieścić następujące elementy na górze urządzenia testowego:
using Moq.Protected;
Następnie wywołujesz Protected()
na swoim makiecie, po czym możesz użyć ogólnego Setup<>
z typem zwracanej metody.
var mock = new Mock<MyClass>();
mock.Protected()
.Setup<int>("MyProtectedGetIntMethod")
.Returns(1);
Jeśli metoda zwróci wartość void, użyj nietypowej funkcji Setup()
.
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow