为什么在UnitTest中将括号放在TestMethod属性上

时间:2014-01-22 09:32:15

标签: c# unit-testing

在许多单元测试教程中,标记测试方法的方法不同。我看到了这些选项:

[TestMethod] 
[TestMethod()]

有什么区别?

3 个答案:

答案 0 :(得分:12)

有和没有括号完全相同:

[TestMethod] 
[TestMethod()]

空括号只调用那个没有参数的属性的默认构造函数。 [TestMethod]也是如此。 两者都调用默认构造函数。

这会有所不同:

[TestMethod(SomeParameter)]

[Test]是来自 NUnit 库的属性,与.Net [TestMethod]属性不同。

答案 1 :(得分:1)

空括号是多余的,两行是等价的。 ReSharper等工具可以让您从代码中删除此冗余。

答案 2 :(得分:1)

[TestMethod] 
[TestMethod()]

两者都相同但是当Visual Studio自动生成测试方法时,它附带[TestMethod()]