Supposons que j'ai une interface avec une méthode générique et aucun paramètre:méthodes génériques Mocking
public interface Interface {
void Method<T>();
}
Maintenant, je tiens à mettre en œuvre la maquette de cette classe (j'utilise Moq
) et je veux railler cette méthode pour certains types de béton - disons que je me moque Method<String>()
appels.
mock = new Mock<Interface>();
mock.Setup(x => x.Method ????).Returns(String("abc"));
L'idée de ????
devrait être clair - cette expression lambda doit gérer le cas où T
dans le Method<T>
est en fait un String
.
Y a-t-il un moyen d'atteindre le comportement désiré?
Ne devrait pas 'string Méthode' être 'T Méthode '? –
Scott
@Secret Agent Man, non, il ne devrait pas. Au moins, il n'y a rien qui l'oblige à le faire. C'était juste un exemple que j'ai pris. Une méthode peut renvoyer ce que vous voulez. Si vous voulez remplacer le type de retour 'string' par' T', l'exemple fonctionnera toujours. –