我有3个项目与.Net 7.0第一个是REST API,第二个是REST客户端,第三个是单元测试项目。当我开始单元测试的时候,我想用一个定义好的端口号来启动服务器,然后我的单元测试使用REST客户端来和REST API对话。如何在单元测试开始之前启动Web服务?
kfgdxczn1#
正如评论中提到的,如果你想测试控制器动作中包含的逻辑,你会希望使用integration tests,而不是单元测试。通过集成测试,你可以设置一个WebApplicationFactory,它的工作原理类似于HttpClientFactory。您创建了一个连接到API的客户端,该API允许您模拟请求,就像它们在生产环境中一样,以便测试所有组件的工作方式在一起。集成测试的设置比较复杂,所以如果您刚刚开始这个项目,我建议您将控制器操作中的逻辑移到一个单独的helper类中,并在这些类上运行单元测试。
1条答案
按热度按时间kfgdxczn1#
正如评论中提到的,如果你想测试控制器动作中包含的逻辑,你会希望使用integration tests,而不是单元测试。通过集成测试,你可以设置一个WebApplicationFactory,它的工作原理类似于HttpClientFactory。您创建了一个连接到API的客户端,该API允许您模拟请求,就像它们在生产环境中一样,以便测试所有组件的工作方式在一起。
集成测试的设置比较复杂,所以如果您刚刚开始这个项目,我建议您将控制器操作中的逻辑移到一个单独的helper类中,并在这些类上运行单元测试。