我正在使用 ASP.Net MVC 4 RC 的 ApiController,我正在尝试对 GET 方法进行单元测试.
I'm using ASP.Net MVC 4 RC's ApiController and I'm trying to unit test a GET method.
此方法使用 HttpRequestMessage 上的 CreateResponse<T> 方法,但我不知道如何模拟它或使其正常运行.
This method uses the CreateResponse<T> method that's on the HttpRequestMessage, but I've no idea how to mock this or to make it function correctly.
方法的主体包含以下内容:
The method's body contains this:
MediaTypeHeaderValue header = new MediaTypeHeaderValue(versionedSmartBlock.ContentType);
var response = Request.CreateResponse<SmartBlock>(
HttpStatusCode.OK, versionedSmartBlock, header);
在我的单元测试中,我创建了一个空的 HttpRequestMessage:
Within my unit test, I create an empty HttpRequestMessage:
CallsController api = new CallsController(
managerMock.Object, config, adapterFactoryMock.Object);
api.Request = new HttpRequestMessage(
HttpMethod.Get, "http://localhost/Initiate?ern=%2B44123456789");
var response = api.Get("+44123456789", null);
但它只是生成一个InvalidOperationException:
请求没有关联的配置对象或提供的配置为空.
The request does not have an associated configuration object or the provided configuration was null.
有没有人知道如何配置 HttpRequestMessage 以使 CreateResponse 方法真正发挥作用?
Has anyone got any pointers on how I can configure the HttpRequestMessage so that the CreateResponse method actually does its job?
通过指定一个空配置解决了这个问题:
This was solved by specifying an empty configuration:
request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
我从这里得到了答案
使用 Request.CreateResponse 进行 ASP.NET WebApi 单元测试
这篇关于如何模拟 CreateResponse<T>HttpRequestMessage 上的扩展方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
ASP.NET Core 使用 Azure Active Directory 进行身份验证并ASP.NET Core authenticating with Azure Active Directory and persisting custom Claims across requests(ASP.NET Core 使用 Azure Active Directory 进行身
ASP.NET Core 2.0 Web API Azure Ad v2 令牌授权不起作用ASP.NET Core 2.0 Web API Azure Ad v2 Token Authorization not working(ASP.NET Core 2.0 Web API Azure Ad v2 令牌授权不起作用)
如何获取守护进程或服务器到 C# ASP.NET Web API 的How do I get Azure AD OAuth2 Access Token and Refresh token for Daemon or Server to C# ASP.NET Web API(如何获取守护进程或服务器到 C# ASP.N
异步调用时 Azure KeyVault Active Directory AcquireTokenAAzure KeyVault Active Directory AcquireTokenAsync timeout when called asynchronously(异步调用时 Azure KeyVault Active Directory AcquireTokenAsync 超
使用电子邮件地址和应用程序密码从 oauth2/tokenGetting access token using email address and app password from oauth2/token(使用电子邮件地址和应用程序密码从 oauth2/token 获取访问令
新的 Azure AD 应用程序在通过管理门户更新之前无New Azure AD application doesn#39;t work until updated through management portal(新的 Azure AD 应用程序在通过管理门户更新之前无法运行