本教程通过一步步构建示例解决方案,为您提供一个互动体验,帮助您学习单元测试的概念。如果您更愿意使用预先构建的解决方案来学习本教程,可以在开始之前查看或下载示例代码。
创建源项目
打开一个终端窗口。创建一个名为“unit-testing-using-nunit”的目录来存放解决方案。在这个新目录中,运行以下命令来为类库和测试项目创建一个新的解决方案文件:
dotnet new sln
下一步,创建 PrimeService
目录。下面展示了当前的目录结构:
/unit-testing-using-nunit
unit-testing-using-nunit.sln
/PrimeService
进入 PrimeService
目录,然后运行下面的命令创建源项目:
dotnet new classlib
将文件名 Class1.cs
重命名为 PrimeService.cs
。然后,该文件的代码如下:
using System;
namespace Prime.Services
{
public class PrimeService
{
public bool IsPrime(int candidate)
{
throw new NotImplementedException("Please create a test first.");
}
}
}
这是一个失败的测试用例,因为函数 IsPrime
直接抛出了异常。这符合测试驱动开发的原则:红-绿-重构。红,即编写一个失败的测试用例,绿,即实现正确的功能,使测试通过。重构,修改正确的代码。
将目录切换到 unit-testing-using-nunit
目录。 运行以下命令,向解决方案添加类库项目:
dotnet sln add PrimeService/PrimeService.csproj
1. 创建测试项目
接下来,创建 PrimeService.Tests
目录。 下图显示了它的目录结构:
/unit-testing-using-nunit
unit-testing-using-nunit.sln
/PrimeService
Source Files
PrimeService.csproj
/PrimeService.Tests
将 PrimeService.Tests
目录作为当前目录,并使用以下命令创建一个新项目:
dotnet new nunit
dotnet new
命令可创建一个将 NUnit 用作测试库的测试项目。 生成的模板在 PrimeService.Tests.csproj
,该文件的内容:
<ItemGroup>
<PackageReference Include="nunit" Version="4.