Я не совсем понимаю разницу между аранжировкой и действием части шаблона в модульных тестах. Устанавливает ли ТОЛЬКО значение для создания объектов? Почему мы должны в первую очередь отделить раздел «Упорядочить с актом», и каковы критерии для принятия решения о том, что что-то принадлежит Закону, а не части «Упорядочить»? Мне кажется, что все принадлежит части Arrange, так как мы «организуем тест» для утверждения, не так ли?В чем разница между Arrange и Act в Arrange, Act, Assert pattern?
ответ
Единичный тест проверяет один «акт» в программе, как правило, один вызов метода на экземпляр объекта. Arrange, Act, Assert организует единичный тест на три части: до, во время и после Закона.
Элемент Arrange - это все, что связано с интересным вызовом метода, но не включая. В разделе «Упорядочить» мы устанавливаем состояние, в котором хотим мир (объект, к которому мы призываем метод, другие объекты, с которыми он взаимодействует, и т. Д.), Когда мы вызываем этот метод.
Акт - это вызов метода, который мы тестируем.
И, чтобы быть полным, Assert - это остальная часть теста, где мы утверждаем, что действие повлияло на мир, который мы ожидаем.
Таким образом, мы не «организуем проверку для утверждения», мы организуем мир для Закона. В части «Упорядочить» мы делаем то, чьи эффекты мы уже знаем. Каждый метод, называемый частью Arrange, должен быть протестирован в другом месте. В Законе мы делаем что-то, эффект которого мы еще не знаем; это то, что на самом деле тест. (В тестовой разработке мы, возможно, еще не написали метод или добавили к его реализации, чтобы пройти этот конкретный тест.)
Хороший ответ, спасибо! Однако, похоже, что часть Act - это всего лишь однострочный, а именно вызов метода. Итак, я думаю, что разделение просто ради удобочитаемости? – cobby
Читаемость, да, но это глубокая читаемость. Части Arrange, Act и Assert имеют очень разные роли в тесте, поэтому их разделение - это мощный способ правильно думать о тесте. –
- 1. Должно ли это быть «Arrange-Assert-Act-Assert»?
- 2. В стиле теста Arrange-Act-Assert, нормально ли переместить Act в блок beforeEach/setUp?
- 3. TDD Arrange Act Assert pattern при использовании Mocks для проверки вызовов зависимостей
- 4. Как обрабатывать множество исключений в nUnit 3 в соответствии с парадигмой Arrange-Act-Assert?
- 5. Подписываются ли комментарии, рекомендованные при модульном тестировании с помощью Arrange-Act-Assert?
- 6. Использование шаблона Assert Act Assert с интеграционными испытаниями
- 7. Есть ли способ кэшировать определение Arg.Is <> для использования в частях «Arrange» и «Act» теста?
- 8. Я изучаю модульное тестирование и задаюсь вопросом, правилен ли этот поток программы тестирования модулей? как в Arrange, Act, Assert
- 9. WPF Arrange Panel Children
- 10. Re-Arrange items В C#
- 11. PHP Array Re-Arrange
- 12. DataList Control Arrange
- 13. ACT! - Экспортировать или читать таблицу ACT?
- 14. В чем разница между assert и static_assert?
- 15. Auto Arrange Views на раскадровке
- 16. Auto Arrange box в css или javascript
- 17. Arrange сортировка типа КУС в хранимой процедуре
- 18. 200 ACT HTTP Response
- 19. QuickSort act funny
- 20. Act As Taggable Error
- 21. JQuery .inimate act unintentionaly
- 22. div и изображение в div act seperate
- 23. Swing GridBagLayout act out
- 24. htaccess rewrite act funny
- 25. В чем разница между url-pattern
- 26. Разница между XCTAssert и assert в Swift
- 27. В чем разница между assert object! = Null и Assert.assertNotNull (объект)?
- 28. Java: Arrange и извлечения данных с помощью HashMap и список
- 29. javascript act weird in chrome
- 30. Разрешение: трансляция Намерение act = android.provider.Telephony.SMS_RECEIVED
Упорядочение означает не только создание объектов. Упорядочить настройку, необходимую для запуска проверенного кода. Сюда входит любая инициализация зависимостей, mocks и данных. – kalkanbatuhan
Можете ли вы обойти часть «Упорядочить из закона»? – cobby