我的Azure功能代码如下所示
public static class MyHttpTriggerFunction
{
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
{
// some business logic
if (valid)
{
return req.CreateResponse(HttpStatusCode.OK, true);
}
else
{
return req.CreateResponse(HttpStatusCode.BadRequest, "some error message");
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的测试项目中,我正在阅读如下结果:
var result = await MyHttpTriggerFunction.Run(req, log).ConfigureAwait(false);
Run Code Online (Sandbox Code Playgroud)
执行该函数后,当它尝试在结果变量中返回响应时,测试方法失败并出现异常.
**
System.InvalidOperationException:请求没有关联的配置对象,或者提供的配置为null.
**
我确保测试项目具有相同的System.Net.Http.HttpRequestMessageExtensiondll.
如果我更改功能代码不使用CreateResponse扩展方法(此扩展方法来自VS 2017模板的代码)并返回如下所示的响应,我会在测试方法中获得响应并且测试用例运行正常.
var res = new HttpResponseMessage();
if (valid)
{
res.StatusCode = HttpStatusCode.OK;
res.Content = new ObjectContent<bool>(true, new JsonMediaTypeFormatter());
return res;
}
else …Run Code Online (Sandbox Code Playgroud)