Подписываются ли комментарии, рекомендуемые при модульном тестировании с помощью Arrange-Act-Assert?

Я нахожу понятие разделения инструкций моих модульных тестов, как это предлагается в шаблоне 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);

Ответ 1

Это, кажется, не добавляет особой ценности, как только основная предпосылка понятна. Поскольку вы упоминаете С#, я предлагаю взглянуть на Искусство модульного тестирования для примеров. ИМХО правильно называть unit тест важнее, чем размещать/действовать/утверждать комментарии внутри него. Как указывается в книге, если тест не пройден, если он назван правильно, вы часто можете определить причину регрессии, если знаете, какие изменения были сделаны недавно.

Ответ 2

Я получил много пользы от этого. Это (для меня) выглядит чище, сразу понятно, какие части теста делают, и это несколько усиливает паттерн. Так что нет, я не думаю, что вам нужно избегать этого.

Если ваши тесты становятся действительно сложными, это отдельная проблема. Даже тест с шестью строчками может принести пользу этим комментариям. Если у вас нет раздела подтверждения, поскольку вы проверяете, что выдается исключение, то, очевидно, не включайте комментарий assert.

Я всегда благодарен за то, что они есть в коде, который я проверяю. Я чувствую, что это экономит мое время.