Что касается классического тестового шаблона Arrange-Act-Assert , я часто добавляю контрутверждение, которое предшествует Act. Таким образом, я знаю, что проходящее утверждение действительно проходит как результат действия.
Я думаю об этом как об аналоге красного в красно-зеленом-рефакторинге, где, только если я видел красную полосу в процессе тестирования, я знаю, что зеленая полоса означает, что я написал код, который имеет значение. Если я напишу проходной тест, то любой код его удовлетворит; аналогично, что касается Arrange-Assert-Act-Assert, если мое первое утверждение терпит неудачу, я знаю, что любой Act прошел бы последнее Assert - так что фактически он ничего не проверял в отношении Act.
Следуют ли ваши тесты этой схеме? Почему или почему нет?
Уточнение обновления : первоначальное утверждение по существу противоположно окончательному утверждению. Это не утверждение, что Arrange сработал; это утверждение, что Закон еще не сработал.