3. 使用xUnit进行单元测试

实现.NET Core时,xUnit可用于创建单元测试,.NET Core团队使用了该产品。xUnit是一个开源实现方案,创建NUnit 2.0的开发人员创建了它。现在,.NET Core命令行界面支持MSTest和xUnit。

提示:

xUnit的文档可参阅https://xunit.github.io/

Visual Studio测试环境支持其他测试框架。测试适配器,如NUnit、xUnit、Boost(用于C++)、Chutzpah(用于JavaScript)和Jasmine(用于JavaScript)可通过扩展和更新来使用;这些测试适配器与Visual Studio Test Explorer集成。

xUnit是.NET Core中一个杰出的测试框架,也由微软的.NET Core和ASP .NET Core开源代码使用,所以xUnit是本节的重点。

1. 使用xUnit和.NET Core

使用.NET Core应用程序,可以创建xUnit测试,其方式与MSTest测试类似。从命令行,可以使用:

> dotnet new xunit

创建xUnit测试项目。在Visual Studio 2017中,可以选择项目类型xUnit Test Project(.NET Core)。

在示例项目中,测试与以前相同的.NET 标准库UnitTestingSamples。这个库包含之前所示的测试的类型:DeepThought和StringSample。测试项目的名称是UnitTestingSamples.xUnit.Tests。

这个项目需要引用xunit(对于单元测试,是xunit.runner.visualstudio[在Visual Studio中运行测试])和UnitTestingSamples项目(应测试的代码)。为了与.NET Core命令行集成,添加dotnet-xunit的DotNetCliToolReference

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>

    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
    <PackageReference Include="xunit" Version="2.4.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
    <PackageReference Include="coverlet.collector" Version="1.2.0" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\UniTestingSamples\UniTestingSamples.csproj" />
  </ItemGroup>

</Project>

2. 创建Fact属性

创建测试的方式非常类似于之前的方法。在MSTest中,需要给测试类型添加特性注释([TestClass])。但在xUnit中是不必要的。因为会在所有的公共类中搜索测试方法。在xUnit和MSTest中测试方法TheAnswerToTheUltimateQuestionOfLifeTheUniverseAndEverything的差异只是测试方法带Fact特性注释和不同的Assert.Equal方法:

    public class DeepThoughtTest
    {
        [Fact]
        public void ResultOfTheAnswerToTheUltimateQuestionOfLifeTheUniverseAndEverything()
        {
            int expected = 42;
            var dt = new DeepThought();
            int actual = dt.TheAnswerOfT
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值