c# - MSTEST 中的 DataTestMethod 和 DataRow 属性

标签 c# unit-testing mstest

我在有关这些属性的 Visual Studio 更新 2 的 Microsoft 视频中看到过。但是,我找不到关于它们的任何其他信息,也无法使用它们构建项目。

有人知道这些属性或如何让它们工作吗?

[DataTestMethod]
[DataRow("a", "b")]
[DataRow(" ", "a")]
public void TestMethod1(string value1, string value2)
{
    Assert.AreEqual(value1 + value2, string.Concat(value1, value2));
}

最佳答案

有一个很好的演练最初发布于 https://blogs.msmvps.com/bsonnino/2017/03/18/parametrized-tests-with-ms-test (链接现在是通过 wayback 机器存档)。

简而言之,您需要安装 MSTest.TestFrameworkMSTest.TestAdapter,并删除对 Microsoft.VisualStudio.QualityTools.UnitTestFramework。然后,您可以使用 [DataTestMethod] 属性指示参数化测试,并可以根据您的示例使用 [DataRow] 属性添加参数。 [DataRow] 属性中的值将按照指定的顺序传递给测试方法。

请注意,[DataRow] 属性中的值必须是原始值,因此您不能使用 DateTimedecimal 等.如果你想要它们,你将不得不解决这个限制(例如,不是用 DateTime 参数来表示日期,你可以用三个整数参数来表示年、月和日,并创建 DateTime 在测试主体中)。

关于c# - MSTEST 中的 DataTestMethod 和 DataRow 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15921226/

相关文章:

c# - 可选参数必须是引用类型、可空类型或声明为可选参数。参数名称 : parameters`

reactjs - 带有 React 测试库的测试输入搜索框

java - Spring MVC - 使用 @WebMvcTest 测试 Controller 时出现 @EnableGlobalMethodSecurity 错误 404

powershell - 无法通过 powershell 远程使用 mstest 开始测试

c++ - 禁用单元测试 MSTest

c# - 使用带有约束的 C# 模拟批处理文件

c# - TCP 服务器 CPU 使用率高

c# - ObservableCollection<T> 和 OnCollectionChanged

xcode - Xcode 6 中是否有键盘快捷键可以在光标下运行单个当前测试函数?

dependency-injection - 如何使用 ILogger 为 azure 函数(Httptrigger)编写单元测试