【发布时间】:2017-04-27 23:42:05
【问题描述】:
由于某种原因,在单独的程序集中创建 ASP.NET 核心控制器时,当客户端发出请求时,TestServer 无法找到控制器动作。(导致 404 响应)这是为什么?我该如何解决它? 以下是重现的步骤。
- 使用 .NET core 创建新的 ASP.NET Core WebAPI
- 在单独的项目中创建集成测试并将测试配置为使用 TestServer() 客户端并让测试成功运行。
- 现在,将控制器分离到它自己的共享库中,并重构在步骤 1 中创建的项目以使用此共享库。
- 重新运行包含 TestServer() 类的测试。您现在会注意到它失败了。
请参阅以下链接以创建集成测试。 Integration testing w/ ASP.NET Core
【问题讨论】:
-
不确定但听起来不对.. 你确定你在测试中没有一些逻辑可能正在对程序集进行一些反思。
-
@loneshark99,我现在找到了解决方法。有关详细信息,请参阅下面的屏幕截图。同样,这看起来像是 TestServer 的一个错误
-
这就是我在评论中所说的:)
-
你很亲密,我会给你的。 :) 有关查找具有控制器的程序集(可能是控制器工厂)的逻辑似乎封装在 Microsoft.AspNetCore.TestHost 程序集中
-
顺便问一下,你是为这个项目做贡献还是只是为了学习
标签: c# unit-testing asp.net-web-api asp.net-core asp.net-core-mvc