Piszę test, który zależy od wyników metody rozszerzającej, ale nie chcę, aby przyszła awaria tej metody rozszerzającej kiedykolwiek przerwała ten test. Kpienie z tego wyniku wydawało się oczywistym wyborem, ale Moq nie wydaje się oferować sposobu na zastąpienie metody statycznej (wymóg dla metody rozszerzającej). Podobny pomysł jest z Moq.Protected i Moq.Stub, ale wydaje się, że nie oferują one niczego w tym scenariuszu. Czy czegoś mi brakuje, czy powinienem zająć się tym inaczej?
Oto trywialny przykład, który kończy się niepowodzeniem ze zwykłym „Nieprawidłowym oczekiwaniem na nieprzekraczalny element członkowski” . To zły przykład potrzeby kpienia z metody rozszerzającej, ale powinno.
public class SomeType {
int Id { get; set; }
}
var ListMock = new Mock<List<SomeType>>();
ListMock.Expect(l => l.FirstOrDefault(st => st.Id == 5))
.Returns(new SomeType { Id = 5 });
Jeśli chodzi o każdego ćpuna TypeMock, który mógłby zasugerować, żebym zamiast tego użył Izolatora: doceniam wysiłek, ponieważ wygląda na to, że TypeMock mógłby wykonać pracę z zawiązanymi oczami i nietrzeźwym, ale nasz budżet nie zwiększa się w najbliższym czasie.