воскресенье, 1 июля 2012 г.

Что такое Arrange Act Assert ?

В виду того что Я начал писать наконец-то unit-тесты к своему коду, то мне стало интересно  как писать это хотя бы правильно, чтобы потом не переделывать и при этом было понятно, что я написал. Понятно прежде всего в будущем, а не сейчас ;)))
Одной из "понятностей" в unit-тестах служит паттерн Arrange Act Assert часто использованием акронимом в англо-язычной литературе является "AAA".

Суть этого паттерна в том что коде теста делится на три части:

Arrange - подготовка
Act - действие
Assert - проверка результата

Пример юнит-теста согласно этому паттерну вот:

Задача: Проверить добавление секции в файл PE32 формата.

Тест:

Arrange:
1) Скопировать эталонный файл calc.exe по новому пути и назвать calc_copy.exe
2) Открыть копию файла calc_copy.exe с помощью класса PeImage


Act:
1) Добавить с помощью метода appendSection() класса PeSectionsUtils в объект PeImage новую секцию с характеристиками ... именем... данными ... в копию файла
2) Закрыть файл
3) Подсчитать CRC32 хэш

Assert:
Проверить подсчитанную CRC32 с эталонной и кричать "Ахтунг" если не совпало )

Комментариев нет: