gpt4 book ai didi

c# - 使用基于属性的路由进行单元测试

转载 作者:太空狗 更新时间:2023-10-29 18:18:15 27 4
gpt4 key购买 nike

我有一个带有路由属性的 Controller 。该 Controller 在单元测试中失败,因为找不到路由:

A route named 'Values' could not be found in the route collection

这是 Controller 方法:

[Route("api/values", Name="ApiValues")]
[HttpGet]
public HttpResponseMessage Get()
{
urlHelper.Link("ApiValues", new {});
}

这是我的单元测试:

var valuesController = new ValuesController()
{
Request = new HttpRequestMessage
{
RequestUri = new Uri("http://localhost/api/")
},
Configuration = new HttpConfiguration()
};

valuesController.Get();

我还尝试将其添加到单元测试中:

valuesController.Configuration.MapHttpAttributeRoutes();
valuesController.Configuration.EnsureInitialized();

但这没有任何帮助。

最佳答案

同样的错误:

A route named 'Values' could not be found in the route collection.

但是在我添加 MapHttpAttributeRoutesEnsureInitialized 之后单元测试在我的机器上通过了:

var valuesController = new ValuesController()
{
Request = new HttpRequestMessage { RequestUri = new Uri("http://localhost/api/") },
Configuration = new HttpConfiguration()
};

valuesController.Configuration.MapHttpAttributeRoutes();
valuesController.Configuration.EnsureInitialized();

valuesController.Get();

能不能提供更多的信息来复现问题或者看看我们的测试代码有没有区别?

关于c# - 使用基于属性的路由进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24882824/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com