J'écris un test qui dépend des résultats d'une méthode d'extension, mais je ne veux pas qu'un échec futur de cette méthode d'extension brise jamais ce test. Se moquer de ce résultat semblait le choix évident, mais Moq ne semble pas offrir un moyen de remplacer une méthode statique (une exigence pour une méthode d'extension). Il y a une idée similaire avec Moq.Protected et Moq.Stub, mais ils ne semblent rien offrir pour ce scénario. Est-ce que je manque quelque chose ou devrais-je procéder d'une manière différente?
Voici un exemple trivial qui échoue avec l'habituelle "Attente non valide sur un membre non remplaçable" . C'est un mauvais exemple de besoin de se moquer d'une méthode d'extension, mais cela devrait le faire.
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 });
Comme pour tous les accros de TypeMock qui pourraient suggérer que j'utilise Isolator à la place: j'apprécie l'effort car il semble que TypeMock pourrait faire le travail les yeux bandés et en état d'ébriété, mais notre budget n'augmente pas de si tôt.