Sto scrivendo un test che dipende dai risultati di un metodo di estensione, ma non voglio che un futuro fallimento di quel metodo di estensione rompa mai questo test. Deridere quel risultato sembrava la scelta ovvia, ma Moq non sembra offrire un modo per ignorare un metodo statico (un requisito per un metodo di estensione). C'è un'idea simile con Moq.Protected e Moq.Stub, ma non sembrano offrire nulla per questo scenario. Mi sto perdendo qualcosa o dovrei affrontarlo in un modo diverso?
Ecco un esempio banale che fallisce con la solita "Aspettativa non valida su un membro non sovrascrivibile" . Questo è un cattivo esempio di necessità di deridere un metodo di estensione, ma dovrebbe funzionare.
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 });
Per quanto riguarda i drogati di TypeMock che potrebbero suggerire di usare Isolator invece: apprezzo lo sforzo poiché sembra che TypeMock potrebbe fare il lavoro bendato e inebriato, ma il nostro budget non aumenterà presto.