18

我发现 AAA 模式中建议的对单元测试语句进行分区的概念很有用。

我倾向于添加标题注释,以便测试如下所示:

// Arrange
int a = 1;
int b = 2;

// Act
int c = a + b;

// Assert
Assert.AreEqual(3, c);

但我很好奇,总是包含这些标题注释是否正常?

...或者这是我应该避免的事情?

int a = 1;
int b = 2;

int c = a + b;

Assert.AreEqual(3, c);
4

2 回答 2

13

一旦理解了基本前提,这似乎并没有增加太多价值。既然你提到了 C#,我建议你看看The Art of Unit Testing的例子。恕我直言,正确命名单元测试比在其中安排/执行/断言评论更重要。正如书中所指出的,当一个测试失败时,如果它命名得当,如果你知道最近做了什么改变,你通常可以直接推断出回归的原因。

于 2014-09-06T06:41:53.313 回答
7

我从这样做中获得了很多价值。它(对我来说)看起来更干净,立即清楚测试的哪些部分在做什么,并且它在某种程度上强制执行了模式。所以不,我认为你不需要避免它。

如果您的测试变得非常复杂,那是一个单独的问题。即使是六行测试也可以从这些评论中受益。如果您没有断言部分,因为您正在检查是否引发了异常,那么显然不要包含assert注释。

我总是很感激在我正在审查的代码中拥有那些,特别是对于集成测试。我觉得这样可以节省我的时间。

于 2019-04-01T20:17:34.183 回答