Я пишу тест, який залежить від результатів методу розширення, але я не хочу, щоб майбутній збій цього методу розширення коли-небудь порушив цей тест. Знущання над цим результатом здавалося очевидним вибором, але , здається, Moq не пропонує способу замінити статичний метод (вимога до методу розширення). Існує подібна ідея з Moq.Protected та Moq.Stub, але, схоже, вони нічого не пропонують для цього сценарію. Мені чогось не вистачає чи я повинен робити це по-іншому?
Ось тривіальний приклад, який зазнає невдачі із звичайним "Недійсним очікуванням на неперевірений член" . Це поганий приклад необхідності знущатися над методом розширення, але він повинен це зробити.
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 });
Що стосується будь-яких наркоманів TypeMock, які можуть запропонувати використовувати замість цього Isolator: я вдячний за зусилля, оскільки схоже, що TypeMock міг би виконувати цю роботу із зав'язаними очима та запою, але наш бюджет скоро не збільшується.