Из behaviour-driven.org под названием "GettingTheWordsRight" :
Короче говоря, слова, которые мы используем для описания вещей, влияют на то, как мы (и другие) думаем об этих вещах. Это не просто вопрос мелочности в семантике, поскольку определенные слова несут в себе нюансы, которые влияют на то, как мы интерпретируем значение фразы как на интеллектуальном, так и на эмоциональном уровне. Наш язык изобилует описательными словами и фразами, поэтому разумно использовать слова, которые четко передают смысл элементов, которые мы хотим описать в коде.
В случае BDD лично я почти всегда использую слово « должен» при именовании тестов, поскольку его использование подразумевает, что, хотя тест предназначен для получения определенного результата, могут возникнуть другие неожиданные последствия , которые необходимо будет устранить с, если результат теста считается действительным. Возможно, вы могли бы использовать слова ожидать или должныаналогично, однако, эти слова подразумевают более императивную точку зрения, так что название теста может быть ошибочно означать «нет ничего плохого в тесте, предположим, что реализация испорчена», тогда как * следует «подразумевает, что тест может будьте верны, но, возможно, потребуется еще раз проверить на наличие ошибок, если результаты теста, кажется, не суммируются. Мне это нравится, потому что это влияет на ваше мышление, так что вам предлагается сохранять непредвзятость при написании кода, что очень важно, если вы хотите избежать застревания при попытке отладки кода и обнаружите, что ищите ошибки в неправильном месте из-за предположения.
Однако я видел, что почти «религиозное» применение этого слова должно потерпеть неудачу, когда оно применяется в качестве префикса для имен тестов, так как оно вынуждает участвующих программистов проходить определенную умственную и лингвистическую гимнастику, чтобы предоставить название теста, которое было значимым, и в таких случаях это означало, что намерение получить правильные слова не соответствует его ожиданиям, и в результате сами тесты становятся трудными для расшифровки. Когда такая ситуация выплывает, я обычно использую слово должнов любом месте имени метода тестирования, чтобы имя передавало его метод просто и ясно. Однако я бы не стал применять конкретное слово, если бы другие слова были одинаково подходящими в данном контексте. Однако хитрость заключается в том, чтобы выбрать слова, которые не оставляют места для споров о том, что что-то представляет в коде, и которые заставляют вас задуматься о том, что должен делать ваш код, не полагаясь на простое следствие.