我在ASP.NET Core项目中使用ActionFilterAttribute。在某些情况下,除了这种方法之外,还会生成一个指向我们的React.js项目将使用的控制器/操作的URL。
例如,我们希望生成类似此http://localhost:1234/api/GetSomething/1
的网址目前我正在使用ActionExecutingContext和Microsoft.AspNetCore.Mvc.Routing.UrlHelper生成操作方法的URL
e.g。 var action = new UrlHelper(actionContext).Action(“get”,“Controller”,new {id});
这在正常运行代码时工作正常,但是当它尝试调用Action扩展帮助程序时,它导致单元测试失败并且索引超出范围异常。
测试是创建一个ActionExecutingContext并设置actionContext,我尝试创建一个新的RouteData并添加几个假值,但它仍然失败。 我假设在startup.cs中设置了某些东西,也许app.UseMvc()?测试没有。
有没有人对如何根据控制器和操作在ActionFilterAttribute中正确生成URL或者如何让我的测试工作有任何建议?