Luk*_*ský 10 c# unit-testing mstest
我开始使用MSTest 2 DataRow属性来检查单个测试中的多个案例:
[TestMethod]
[DataRow(1, 1, 2)]
[DataRow(1, 2, 3)]
public void AdditionWorks(int op1, int op2, int expectedResult)
{
Assert.AreEqual(expectedResult, new Sut().Add(op1, op2));
}
Run Code Online (Sandbox Code Playgroud)
它在NCrunch和CI中都很好用.只是现在我注意到有一个特殊属性DataTestMethod应该标记这样的测试而不是TestMethod.
有区别吗?特别使用一种变体的原因是什么?
Nko*_*osi 12
这两个属性都起作用,因为在与先前版本的MSTest相同的命名空间中定义了相同的属性.这样做是为了向后兼容.
但建议对于数据驱动的测试,DataTestMethod在较新版本的MSTest中使用.
参考:
ShreyasRmsft 在 GitHub 上评论了以下内容:
嗨@cactuaroid DataTestMethod 是不需要的。继续并使用带有 DataRows 的 TestMethod 以数据驱动您的测试。如有更多疑问,请参阅https://github.com/microsoft/testfx-docs 上的官方文档
https://github.com/microsoft/testfx/issues/614
https://github.com/microsoft/testfx-docs/issues/64
因此,根据 Microsoft 的说法,最好使用 TestMethod 而不是 DataTestMethod。