- .NET Core 教程
- .NET Core - 主页
- .NET Core - 概述
- .NET Core - 先决条件
- .NET Core - 环境设置
- .NET Core - 入门
- .NET Core - 数值
- .NET Core - 垃圾回收
- .NET Core - 代码执行
- .NET Core - 模块化
- .NET Core - 项目文件
- .NET Core - 包引用
- 使用 .NET Core 创建 UWP 应用
- .NET Core - MSBuild
- .NET Core - 元包
- Windows 运行时和扩展 SDK
- 创建 .NET Standard 库
- .NET Core - 可移植类库
- 向库添加引用
- 共享 .NET Core 库
- 创建 Xamarin.Forms 项目
- .NET Core - PCL 故障排除
- .NET Core - 创建测试项目
- 在 Visual Studio 中运行测试
- .NET Core - 测试库
- 托管可扩展性框架
- .NET Core - SDK
- .NET Core - MSBuild 和 project.json
- 还原和构建以及 MSBuild
- .NET Core - 迁移
- .NET Core 有用资源
- .NET Core - 快速指南
- .NET Core - 有用资源
- .NET Core - 讨论
.NET Core - 测试库
在本节中,我们将测试我们的 StringLibrary,为此,我们需要重新排列我们的项目,以便我们能够遵循默认约定。
让我们打开global.json文件。
{
"projects": [ "src", "test" ],
"sdk": {
"version": "1.0.0-preview2-003131"
}
}
在此文件的顶部,您将看到项目设置,它默认设置了一些文件夹,例如src和test。
按照惯例,我们必须在这些文件夹中拥有项目,这是新的约定,它将作为 .NET Core 的一部分使用。
在解决方案资源管理器中,您可以看到控制台项目和库项目都在src文件夹内,而测试项目在test文件夹内。
并且解决方案资源管理器中的项目结构并不代表项目在磁盘上的物理位置。现在让我们打开解决方案文件夹,您将看到StringLibrary项目不在src文件夹内。
您可以看到src和test文件夹都映射到global.json文件中指定的约定。但是,我们有一个项目 StringLibrary 不符合约定。现在让我们将StringLibrary项目添加到src文件夹中。
在 src 文件夹中,我们有两个项目,我们需要解决此问题,以便我们可以正确使用所有项目。让我们回到 Visual Studio,右键单击 StringLibrary 项目并选择“删除”选项。它不会删除它,只会删除项目。
现在右键单击 src 文件夹并选择添加→现有项目…
浏览到现在位于src文件夹内的 StringLibrary 项目,选择StringLibrary.csproj文件,然后单击打开。
现在,我们必须从控制台应用的project.json文件中删除StringLibrary的引用。
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
},
"NuGet.CommandLine": "3.5.0",
"System.Runtime.Serialization.Json": "4.0.3"
},
"frameworks": {
"netcoreapp1.0": {
"dependencies": { },
"imports": "dnxcore50"
}
}
}
保存更改,然后在您的控制台项目中再次添加StringLibrary的引用。
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
},
"NuGet.CommandLine": "3.5.0",
"System.Runtime.Serialization.Json": "4.0.3"
},
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"StringLibrary": {
"target": "project"
}
},
"imports": "dnxcore50"
}
}
}
现在一切应该都能正常工作了,您可以构建StringLibrary,然后构建FirstApp(控制台项目)而不会出现任何错误。现在让我们使用 xunit 测试 StringLibrary 功能。我们需要将 StringLibrary 的引用添加到我们的测试项目中。右键单击 StringLibraryTests 项目的“引用”,然后选择“添加引用…”。
单击确定,这将向我们的测试项目添加StringLibrary的引用。现在让我们替换Tests.cs文件中的以下代码。
using System;
using Xunit;
using StringLibrary;
namespace Tests {
public class Tests {
[Fact]
public void StartsWithUpperCaseTest() {
string input = "Mark";
Assert.True(input.StartsWithUpper());
}
[Fact]
public void StartsWithLowerCaseTest() {
string input = "mark";
Assert.True(input.StartsWithLower());
}
[Fact]
public void StartsWithNumberCaseTest() {
string input = "123";
Assert.True(input.StartsWithNumber());
}
}
}
您可以看到我们有三个测试方法,它们将测试 StringLibrary 的功能。让我们单击“运行全部”链接,您将在测试资源管理器中看到以下输出。
您也可以从命令行运行测试。让我们打开命令提示符并执行dotnet test命令。