AspNetCore的单元测试
一、单元测试项目如何创建
VisualStudio新建项目,项目类型选择测试。
可以看到有许多选项,都大差不差。
这里选择xUnit。
项目名使用要测试的项目名加上“.Tests”后缀。
二、进行单元测试
首先明确测试对象,通常是针对一个类型进行测试,新建Test类,类名为测试对象的类名加上“Test”后缀。
然后创建方法,每个方法上带有Attribute,这里是[Fact],表示该方法是一个测试。
测试方法中分三步骤写单元测试:Arrange、Act、Assert。
一些准备工作可以在测试类的构造函数中进行初始化。
测试AspNetCore的Controller的话,通常Controller会依赖很多类型,集成测试的方法是启动TestHost然后用HttpClient发送请求。在单元测试中则需要脱离环境,需要自己准备好依赖。推荐一个工具:使用Moq。
三、进行测试
可以右键测试方法,在右键菜单中点击运行测试,也可以调试测试进行断点。
也可以打开VisualStudio的窗口“测试资源管理器”。测试完成的结果可以很清晰得在窗口中展示。
四、关于测试的覆盖率
可以使用命令行工具dotnet test命令,之后用reportgenerator工具生成html进行查看。
https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-code-coverage?tabs=windows
这里推荐使用VisualStudio的扩展Fine Code Coverage。
安装扩展之后在视图->其他窗口中会有“Fine Code Coverage”的窗口选项,打开窗口可以看到运行后的覆盖率。