本篇经验将和大师介绍利用 Visual Studio 2017 测试 .NET Core 类库的方式,但愿对大师的工作和进修有所帮忙!
在“解决方案资本办理器”中,打开“ClassLibraryProjects”解决方案节点的上下文菜单,再依次选择“添加” > “新项目”。
在“添加新项目”对话框中,选择“Visual C#”节点。
然后,依次选择“.NET Core”节点和“单位测试项目(.NET Core)”项目模板。
在“名称”文本框中,输入项目名称“StringLibraryTest”。
选择“确定”,建立单位测试项目,如下图所示:
此时,Visual Studio 会建立项目,并在代码窗口中打开 UnitTest1.cs 文件,如下图所示:
单位测试模板建立的源代码负责执行以下操作:
导入 Microsoft.VisualStudio.TestTools.UnitTesting 定名空间,此中包含用于单位测试的类型。
标的目的 UnitTest1 类应用 [TestClass] 特征。 测试类中标识表记标帜有 [TestMethod] 属性的所有测试方式城市在单位测试运行时主动执行。
它应用 [TestMethod] 属性,将 TestMethod1 界说为在单位测试运行时主动执行的测试方式。
在“解决方案资本办理器”中,右键单击“StringLibraryTest”项目标“依靠项”节点,并从上下文菜单中选择“添加引用”,如下图所示:
在“引用办理器”对话框中,睁开“项目”节点,并选中“StringLibrary”旁边的框。
添加对 StringLibrary 法式集的引用后,编译器可以查找 StringLibrary 方式。 选择“确定”按钮。
这会添加对类库项目 StringLibrary 的引用,如下图所示:
建立测试方式,如下代码所示:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using UtilityLibraries;
namespace StringLibraryTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestStartsWithUpper()
{
// Tests that we expect to return true.
string[] words = { "Alphabet", "Zebra", "ABC", "Αθήνα", "Москва" };
foreach (var word in words)
{
bool result = word.StartsWithUpper();
Assert.IsTrue(result,
String.Format("Expected for '{0}': true; Actual: {1}",
word, result));
}
}
[TestMethod]
public void TestDoesNotStartWithUpper()
{
// Tests that we expect to return false.
string[] words = { "alphabet", "zebra", "abc", "αυτοκινητοβιομηχανία", "государство",
"1234", ".", ";", " " };
foreach (var word in words)
{
bool result = word.StartsWithUpper();
Assert.IsFalse(result,
String.Format("Expected for '{0}': false; Actual: {1}",
word, result));
}
}
[TestMethod]
public void DirectCallWithNullOrEmpty()
{
// Tests that we expect to return false.
string[] words = { string.Empty, null };
foreach (var word in words)
{
bool result = StringLibrary.StartsWithUpper(word);
Assert.IsFalse(result,
String.Format("Expected for '{0}': false; Actual: {1}",
word == null ? "<null>" : word, result));
}
}
}
}
请注重,TestStartsWithUpper 方式中测试的年夜写字符包罗希腊文年夜写字母 alpha (U+0391) 和西里尔文年夜写字母 EM (U+041C),TestDoesNotStartWithUpper 方式中测试的小写字符包罗希腊文小写字母 alpha (U+03B1) 和西里尔文小写字母 Ghe (U+0433)。
在菜单栏上,选择“文件” > “将 UnitTest1.cs 另存为”。
在“文件另存为”对话框中,选择“保留”按钮旁边的箭头,然后选择“保留时利用编码”,如下图所示:
在“确认另存为”对话框中,选择“是”按钮,保留文件。
在“高级保留选项”对话框的“编码”下拉列表中,选择“Unicode (UTF-8 带签名) - 代码页 65001”,然后选择“确定”,如下图所示:
若是无法将源代码保留为 UTF8 编码文件,Visual Studio 可能会将其另存为 ASCII 文件。 在这种环境下,运行时将无法精确解码 ASCII 规模以外的 UTF8 字符,且测试成果也会禁绝确。
在菜单栏上,选择“测试” > “运行” > “所有测试”。
此时,“测试资本办理器”窗口打开并显示测试已当作功运行。
“经由过程的测试”部门列出了三个测试,“摘要”部门陈述了测试运行成果,如下图所示:
经由过程点窜 TestDoesNotStartWithUpper 方式中的 words 数组来包含字符串“Error”。 因为 Visual Studio 将在生当作运行测试的解决方案时主动保留打开的文件,是以无需手动保留。
tring[] words = { "alphabet", "Error", "zebra", "abc", "αυτοκινητοβιομηχανία", "государство", "1234", ".", ";", " " };
从菜单栏中选择“测试” > “运行” > “所有测试”,运行测试。 “测试资本办理器”窗口指示有两个测试当作功,还有一个掉败,如下图所示:
在“未经由过程的测试”部门中,选择未经由过程的测试 TestDoesNotStartWith。 “
测试资本办理器”窗口显示断言生当作的动静:“Assert.IsFalse 掉败。
‘Error’ 应返回 false; 现实返回 True”。
因为此次掉败,数组中“Error”之后的所有字符串都未进行测试,如下图所示:
删除添加的代码 ("Error",),然后从头运行测试。
测试将经由过程。
在 Visual Studio 东西栏中,将生当作设置装备摆设从“调试”更改为“刊行”,如下图所示:
“解决方案资本办理器”中,右键单击“StringLibrary”项目,从上下文菜单中选择“生当作”,从头编译库,如下图所示:
从菜单栏中选择“测试” > “运行” > “所有测试”,运行单位测试,测试经由过程。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!