Ожидания от тестирования
На этой странице описано, чего мы ожидаем при тестировании нового кода, добавляемого в Dynamo.
Итак, у вас появился новый узел, который нужно добавить. Замечательно! Пришло время добавить несколько тестов. Есть две причины, чтобы делать это.
Это помогает выявить проблемы в коде.
Когда кто-то другой вносит какие-либо изменения, которые нарушают работоспособность вашего узла, это также должно отразиться на тестах. Таким образом, человек, который сделал тесты неработоспособными, должен исправить это. Если с тестами все в порядке, то проблема в значительной степени связана с пользователями, чьи модели оказались неисправны.
Тесты в Dynamo бывает двух основных типов: модульные и системные.
Модульные тесты
Модульные тесты должны быть как можно более специализированными. Если вы создали узел, вычисляющий квадратные корни с помощью узла Zero Touch C#, тестироваться должна только конкретная библиотека DLL и узел C# должен вызывать непосредственно этот код. Модульные тесты даже не должны включать Dynamo.
Они должны включать следующее:
положительные тесты (правильное поведение);
отрицательные тесты (не выводятся ошибки при наличии лишнего во вводе);
регрессионные тесты (при обнаружении ошибки в коде напишите тест, чтобы убедиться, что она не повторится).
Такие тесты должны быть небольшими, быстрыми и надежными. Большинство тестов должны быть модульными.
Системные тесты
Системные тесты применяются к нескольким компонентам и проверяют их совместимость друг с другом. Их следует использовать и разрабатывать очень внимательно.
Почему? Их выполнение достаточно ресурсоемкое. Необходимо поддерживать выполнение набора тестов с минимально возможной задержкой.
При написании системного теста первое, что нужно сделать, это обратиться к этой диаграмме и выяснить, какие подсистемы вы охватываете.
В идеале должна быть прогрессивная серия тестов, охватывающая все возрастающие наборы взаимодействующих блоков, чтобы, когда тесты начинают завершаться неудачей, можно было очень быстро выяснить, в чем проблема.
Примеры элементов, для которых требуются системные тесты:
новый тип узла Revit, который сохраняет в трассировке несколько элементов, а не один элемент;
новый узел просмотра, отображающий данные по-разному.
Примеры элементов, для которых не требуются системные тесты:
новый узел математических вычислений;
библиотека обработки строк.
Системные тесты должны:
констатировать правильное поведение;
констатировать отсутствие патологических форм поведения, например отсутствие исключений.
Last updated