В виду того что Я начал писать наконец-то 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 с эталонной и кричать "Ахтунг" если не совпало )
Одной из "понятностей" в 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 с эталонной и кричать "Ахтунг" если не совпало )
Комментариев нет:
Отправить комментарий