Это скользкий уклон, когда вы начинаете инициализацию полей и обычно настраиваете контекст вашего теста в пределах самого метода теста. Это приводит к большим методам тестирования и действительно неуправляемым приборам, которые не очень хорошо себя объясняют.
Вместо этого вы должны взглянуть на организацию именования и тестирования в стиле BDD. Создайте один прибор для каждого контекста, а не один прибор для тестируемой системы. Тогда ваш [setup] действительно настроит контекст, и ваши тесты могут быть простыми однострочными утверждениями.
Намного легче читать, когда вы видите тестовый вывод, который делает это:
OrderFulfillmentServiceTests.cs
with_an_order_from_a_new_customer
- следует проверить их кредит в кредитной службе
- скидка не должна дать
с действующим кредитным чеком
- Это должно уменьшить инвентарь
- он должен грузить товары
с клиентом в Техасе или Калифорнии
- следует добавить соответствующий налог с продаж
при заказе от золотого клиента
- НЕ ДОЛЖЕН проверять кредит
- ускоренная доставка должна быть добавлена бесплатно
Наши тесты теперь действительно хорошая документация для нашей системы. Каждое «with_an ...» - это тестовое устройство, а элементы под ним - тесты. В них вы устанавливаете контекст (состояние мира, как описывает имя класса), а затем тест выполняет простое утверждение, которое проверяет, что говорит имя метода.