【发布时间】:2017-12-09 15:19:18
【问题描述】:
我正在尝试模拟泛型方法的返回类型以匹配特定的具体类型,但我似乎无法让转换工作:
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@email.com"
};
}
所以我的问题是如何让模拟方法返回 GenericIsAuthenticatedResponse?
【问题讨论】:
-
为什么在这种情况下你希望你的方法是通用的?
-
因为它用于各种不同的类型,我只测试一个非常具体的场景。
-
假设 T 在测试中始终为
GenericIsAuthenticatedResponse,您可以简单地将返回值转换为T,然后再返回。 -
试试
return (T)(object)GetGenericIsAuthenticatedResponse();
标签: c# .net unit-testing generics mocking