Mam prywatną metodę, która powinna powrócić true.I m przy użyciu NUnit i MOQ Mam więc następująco:W jaki sposób mogę zapewnić/zweryfikować metodę chronioną przez Moq?
[TestFixture]
public class CustomerTestFixture
{
var customerMock=new Mock<ICustomer>()
customerMock.Protected().Setup<bool>("CanTestPrivateMethod").Returns(true);
// How do I assert it now since I cannot do
customerMock.Verify //Verify does not exists.
}
nie mógł znaleźć coś na google, który mówi, jak go przetestować. jak widać mogę zrobić zestaw dla niego, ale nie mogę potwierdzić.
Czy brakuje mi oczywistości? Wielkie dzięki.
Dziękuję za odpowiedź. Chcę mój obiekt makiety.CanTestPrivateMethod, aby zwrócić określone wartości. Więc jeśli hardcode "return true" w mojej prywatnej metodzie. Czy nadal mogę to potwierdzać? Moim zdaniem nie powinienem w ogóle testować prywatnej metody, ale mój kolega nalega na tę. Po prostu próbuję dowiedzieć się, jak to zrobić, używając MOQ. – user9969
Brakuje mi mojego punktu. Nie kpij z badanego obiektu. Tylko kpisz z jego zależności. Utwórz rzeczywistą instancję, skonfiguruj warunki, aby metoda prywatna zwróciła określoną wartość, a następnie użyj akcesora, aby sprawdzić, czy metoda faktycznie zwraca tę wartość. Jedyną potrzebą mocks byłoby, gdyby instancja miała pewne zależności, których używałbyś w swojej prywatnej metodzie. – tvanfosson
Dziękuję za poświęcony czas i odpowiedź. Teraz mam rację. – user9969