Лучшие практики именования модульных тестов
Мне нравится следовать стандарту unit-tests именования «Следует» для тестов, называя unittest тестовое приспособление после тестируемого модуля unittest (т. е. класса ).
Для иллюстрации unit-testing (с использованием C# и NUnit):
[TestFixture]
public class BankAccountTests
{
[Test]
public void Should_Increase_Balance_When_Deposit_Is_Made()
{
var bankAccount = new BankAccount();
bankAccount.Deposit(100);
Assert.That(bankAccount.Balance, Is.EqualTo(100));
}
}
Почему unit-tests «Следует»?
Я обнаружил, что это заставляет naming-conventions авторов тестов называть тест unit-test предложением типа «Должен unit-test [быть в каком-то состоянии] [после unittest / до / когда] [действие имеет naming-conventions место]»
Да, написание «следует» повсюду naming-conventions становится немного повторяющимся, но, как unit-test я уже сказал, оно заставляет casing-conventions писателей думать правильно unit-tests (так что может быть полезно unit-testing для новичков). Кроме того, в casing-conventions результате получается удобочитаемое variable-naming название теста на английском variable-naming языке.
Обновить:
Я заметил, что Джимми unittest Богард также является поклонником casing-conventions «следует» и даже имеет библиотеку unit-testing модульных тестов под названием unit-testing Should.
Обновление (4 года спустя ...)
Для тех, кто интересуется, мой variable-naming подход к тестам именования unit-tests изменился с годами. Одна naming-conventions из проблем с шаблоном Должен, которую unit-tests я описал выше, заключается unit-testing в том, что нелегко с первого casing-conventions взгляда узнать, какой метод unit-test тестируется. Для ООП я думаю, что casing-conventions имеет смысл начинать имя variable-naming теста с тестируемого метода. Для unittest хорошо спроектированного casing-conventions класса это должно привести unit-tests к читаемым именам тестовых variable-naming методов. Теперь я использую unit-testing формат, аналогичный
. Очевидно, что casing-conventions в зависимости от контекста unit-tests вы можете заменить глаголы naming-conventions Should / When на что-то более variable-naming подходящее. Пример:
Deposit_ShouldIncreaseBalance_WhenGivenPositiveValue()
unit-testing
naming-conventions
Лучшие практики именования модульных тестов
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.