如何:创建数据驱动的单元测试

您可以设置单元测试,以便从数据源检索值,而不是将值键入到测试方法中。 此单元测试针对数据源中的每一行连续运行。 这便于在单一测试运行中测试各种输入。

将单元测试设置为从数据源检索值包含两个阶段。 第一阶段使用单元测试的属性,生成单元测试方法与数据源之间的连接。 第二阶段分配方法的变量,以便从数据源中的相应列检索这些变量的值。 您可以在测试方法自身的逻辑中完成此操作。

数据驱动的单元测试的示例

下图显示两个单元测试:一个测试添加两个数字,另一个测试连接名字和姓氏。 这些单元测试设置为从数据库检索测试值。

数据驱动的单元测试

数据驱动的单元测试的示例

  1. 此行提供 DataSource 特性和连接字符串。 根据使用的数据源的种类,连接字符串中的确切信息会有所不同。 在此示例中,使用 Access 数据库。

  2. 如果值来自于数据库表,则必须转换为相应的类型。 在此示例中,第一个单元测试将数据库中的值转换为字符串,第二个单元测试将这些值转换为整数。

  3. TestContext.DataRow 属性告知单元测试将从哪一行中检索数据。 在本例中,它从第一行开始检索数据,然后按顺序检索,直到达到表中的最后一行。 有关此属性的更多信息,请参见 TestContext

  4. 列名告知单元测试将从哪一列中检索数据。

通过在**“测试结果”**窗口中双击测试,可以查看测试使用的每个数据行的详细结果。

数据驱动的单元测试的详细结果

数据驱动的单元测试的详细结果

建立单元测试与数据源之间的连接

这是将单元测试设置为使用数据源的第一阶段。 在此阶段中,您要建立单元测试方法与数据源之间的连接。

此过程演示如何使用单元测试的属性创建该连接。 不过,您还可以通过创建 app.config 文件并向其中添加连接信息来创建连接。 使用 app.config 文件的好处是无需更改单元测试自身,即可更改数据库的位置。 有关如何创建和使用 app.config 文件的信息,请参见演练:使用配置文件定义数据源

提示

如果您熟悉数据连接字符串,可以在 [TestMethod()] 元素的第一个括号后键入数据连接字符串,而不是使用属性窗口。

[DataSource(在此处键入数据连接字符串), TestMethod()]

将单元测试连接到数据源

  1. 打开相应的解决方案,即包含要将数据源用于的测试方法的解决方案。

  2. 在**“测试”菜单上,指向“窗口”,然后单击“测试视图”**。

  3. 在**“测试视图”窗口中,右击要将数据源用于的单元测试,然后单击“属性”**。

  4. 在**“属性”窗口中,单击“数据连接字符串”**,然后单击省略号 (…)。

  5. 按照**“新建测试数据源向导”**中的说明来创建数据连接。

    连接字符串已添加到单元测试中 [TestMethod()] 元素的第一个括号之后。

分配变量以便从数据源获取其值

这是将单元测试设置为使用数据源的第二阶段。 在此阶段中,将分配方法的变量,以便从数据源中的相应列检索这些变量的值。

将变量分配给数据源中的值

  1. 打开包含要将数据源用于的测试方法的单元测试文件,在测试方法中找到变量。

  2. 对于希望来自于数据源的每个变量,使用语法 TestContext.DataRow["NameOfColumn"]。

提示

您可能需要将这些数据源中的数据类型转换为测试代码项目的数据类型,如上例所示。

运行单元测试并查看结果

像运行任何其他单元测试一样,运行数据驱动的单元测试。 通过在**“测试结果”**窗口中双击测试,可以查看测试使用的每个数据行的详细结果。

运行数据驱动的单元测试并查看结果

  1. 在单元测试中的任意位置右击,然后单击**“运行测试”**。

  2. 测试运行之后,在**“测试结果”窗口中双击该测试,可在“数据驱动测试结果”**窗口中查看每个测试迭代的结果。

请参见

参考

TestContext

概念

单元测试分析

如何:创建和运行单元测试