Ich versuche, den Rückgabetyp einer generischen Methode zu verspotten einen bestimmten konkreten Typen übereinstimmen, aber ich kann nicht das Casting zu bekommen scheinen zu funktionieren:Wie man eine generische Methode vortäuscht, um konkreten Typ zurückzugeben?
public T Get<T>(string key)
{
if (typeof(T) == typeof(GenericIsAuthenticatedResponse) && key == "1234")
return GetGenericIsAuthenticatedResponse();
return default(T);
}
private static GenericIsAuthenticatedResponse GetGenericIsAuthenticatedResponse()
{
return new GenericIsAuthenticatedResponse
{
AuthCode = "1234",
Email = "[email protected]"
};
}
Also meine Frage ist, wie kann ich die Mock-Methode erhalten, um GenericIsAuthenticatedResponse zurückzugeben?
Warum möchten Sie Ihre Methode in diesem Fall generisch sein? –
Da es für verschiedene Typen verwendet wird, teste ich nur ein sehr spezifisches Szenario. – Simon
Unter der Annahme, dass T im Test immer 'GenericIsAuthenticatedResponse' ist, können Sie den Rückgabewert einfach in' T' umwandeln, bevor Sie ihn zurückgeben. –