- .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 核心 - MSBuild
- .NET Core - 元包
- Windows 运行时和扩展 SDK
- 创建.NET标准库
- .NET Core - 可移植类库
- 添加对库的引用
- 共享 .NET Core 库
- 创建 Xamarin.Forms 项目
- .NET Core - PCL 故障排除
- .NET Core - 创建测试项目
- 在 Visual Studio 中运行测试
- .NET Core - 测试库
- 托管可扩展性框架
- .NET 核心 - 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文件夹内。
解决方案资源管理器中的项目结构并不代表项目在磁盘上的物理位置。现在让我们打开 Solution 文件夹,您将看到StringLibrary项目不在src文件夹内。
您可以看到src和test文件夹都映射到global.json文件中指定的约定。然而,我们有一个不符合惯例的项目 StringLibrary。现在让我们在src文件夹中添加StringLibrary项目。
在 src 文件夹中,我们有两个项目,我们需要解决问题,以便我们可以正确使用所有项目。让我们返回到 Visual Studio,右键单击 StringLibrary 项目并选择“删除”选项。它不会删除它,但只会删除该项目。
现在右键单击 src 文件夹并选择添加 → 现有项目...
浏览到位于src文件夹内的 StringLibrary 项目,选择StringLibrary.csproj文件并单击Open。
现在,我们必须从控制台应用程序的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 的功能。让我们单击Run All链接,您将在测试资源管理器中看到以下输出。
您还可以从命令行运行测试。让我们打开命令提示符并执行dotnet test命令。
