使用 Visual Studio 2017 测试 .NET Core 类库

本篇经验将和大师介绍利用 Visual Studio 2017 测试 .NET Core 类库的方式,但愿对大师的工作和进修有所帮忙!

建立单位测试项目

  1. 1

    在“解决方案资本办理器”中,打开“ClassLibraryProjects”解决方案节点的上下文菜单,再依次选择“添加” > “新项目”。

  2. 2

    在“添加新项目”对话框中,选择“Visual C#”节点。 

    然后,依次选择“.NET Core”节点和“单位测试项目(.NET Core)”项目模板。 

    在“名称”文本框中,输入项目名称“StringLibraryTest”。 

    选择“确定”,建立单位测试项目,如下图所示:

  3. 3

    此时,Visual Studio 会建立项目,并在代码窗口中打开 UnitTest1.cs 文件,如下图所示:

    单位测试模板建立的源代码负责执行以下操作:

    导入 Microsoft.VisualStudio.TestTools.UnitTesting 定名空间,此中包含用于单位测试的类型。

    标的目的 UnitTest1 类应用 [TestClass] 特征。 测试类中标识表记标帜有 [TestMethod] 属性的所有测试方式城市在单位测试运行时主动执行。

    它应用 [TestMethod] 属性,将 TestMethod1 界说为在单位测试运行时主动执行的测试方式。

  4. 4

    在“解决方案资本办理器”中,右键单击“StringLibraryTest”项目标“依靠项”节点,并从上下文菜单中选择“添加引用”,如下图所示:

  5. 5

    在“引用办理器”对话框中,睁开“项目”节点,并选中“StringLibrary”旁边的框。 

    添加对 StringLibrary 法式集的引用后,编译器可以查找 StringLibrary 方式。 选择“确定”按钮。

     这会添加对类库项目 StringLibrary 的引用,如下图所示:

添加并运行单位测试方式

  1. 1

    建立测试方式,如下代码所示:

    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)。

  2. 2

    在菜单栏上,选择“文件” > “将 UnitTest1.cs 另存为”。 

    在“文件另存为”对话框中,选择“保留”按钮旁边的箭头,然后选择“保留时利用编码”,如下图所示:

  3. 3

    在“确认另存为”对话框中,选择“是”按钮,保留文件。

    在“高级保留选项”对话框的“编码”下拉列表中,选择“Unicode (UTF-8 带签名) - 代码页 65001”,然后选择“确定”,如下图所示:

    若是无法将源代码保留为 UTF8 编码文件,Visual Studio 可能会将其另存为 ASCII 文件。 在这种环境下,运行时将无法精确解码 ASCII 规模以外的 UTF8 字符,且测试成果也会禁绝确。

  4. 4

    在菜单栏上,选择“测试” > “运行” > “所有测试”。 

    此时,“测试资本办理器”窗口打开并显示测试已当作功运行。 

    “经由过程的测试”部门列出了三个测试,“摘要”部门陈述了测试运行成果,如下图所示:

处置未经由过程的测试

  1. 1

    经由过程点窜 TestDoesNotStartWithUpper 方式中的 words 数组来包含字符串“Error”。 因为 Visual Studio 将在生当作运行测试的解决方案时主动保留打开的文件,是以无需手动保留。

    tring[] words = { "alphabet", "Error", "zebra", "abc", "αυτοκινητοβιομηχανία", "государство", "1234", ".", ";", " " };

  2. 2

    从菜单栏中选择“测试” > “运行” > “所有测试”,运行测试。 “测试资本办理器”窗口指示有两个测试当作功,还有一个掉败,如下图所示:

  3. 3

    在“未经由过程的测试”部门中,选择未经由过程的测试 TestDoesNotStartWith。 “

    测试资本办理器”窗口显示断言生当作的动静:“Assert.IsFalse 掉败。 

    ‘Error’ 应返回 false; 现实返回 True”。

     因为此次掉败,数组中“Error”之后的所有字符串都未进行测试,如下图所示:

  4. 4

    删除添加的代码 ("Error",),然后从头运行测试。 

    测试将经由过程。

测试库的刊行版本

  1. 1

    在 Visual Studio 东西栏中,将生当作设置装备摆设从“调试”更改为“刊行”,如下图所示:

  2. 2

    “解决方案资本办理器”中,右键单击“StringLibrary”项目,从上下文菜单中选择“生当作”,从头编译库,如下图所示:

  3. 3

    从菜单栏中选择“测试” > “运行” > “所有测试”,运行单位测试,测试经由过程。

  • 发表于 2018-04-25 00:00
  • 阅读 ( 291 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论