Лучшие практики с Поблочным тестированием на API Внешнего программного обеспечения (AutoCAD)

Content имеет тип bytes, поэтому аргументом для Content.find должно быть bytes или int, но '<body>' имеет тип str. Итак, у вас есть несовпадающие типы.

Как исправить: преобразовать str в bytes:

Content.find(b'<body>')
10
задан Mogsdad 18 September 2015 в 21:19
поделиться

1 ответ

Первый шаг должен сортировать Ваш код для частей, которым нужны AutoCAD и части, которые действительно независимы. Создайте модульные тесты на независимые части, как Вы обычно были бы.

Для других частей Вам нужны макеты, которые ведут себя как AutoCAD. Сделайте их максимально простыми (например, просто дайте корректные ответы в методах, не делая никаких вычислений). Теперь, Вам нужны несколько наборов классов:

  1. Ряд интерфейсов, который Ваше использование кода достигнуть чего-то (например, загрузите рисунок).

  2. Ряд реализаций для упомянутого набора интерфейсов, которые называют AutoCAD dlls.

  3. Ряд классов, которые пробуют реализации в контексте AutoCAD. Просто создайте маленький UI с несколькими кнопками, куда можно выполнить этот код. Это используется, чтобы заверить себя, что Ваши макеты делают правильную вещь. Параметры метода журнала и результаты в некоторый файл, таким образом, можно попробовать, как AutoCAD отвечает. Если макет повреждается, можно использовать этот код для проверки то, что делает AutoCAD, и можно использовать его в качестве ссылки при разработке макетов.

  4. Когда Вы знаете, как AutoCAD отвечает, создайте макеты. В Ваших тестах создайте их с желаемыми результатами (и ошибки, таким образом, можно протестировать обработку ошибок, также). Таким образом, когда Вы имеете boolean loadDrawing(File filename), создайте макет, который возвращается true для имени файла exists.dxf и false для чего-либо еще.

  5. Используйте фабрику или DI для сообщения кода приложения который реализация использовать. Я склонен иметь большой глобальный класс конфигурации с большим количеством общедоступных полей, где я просто храню объекты для использования. Я могу настроить это в начале, это быстро, легко понять. Если необходимо создать объекты во времени выполнения, то помещенные фабрики в классе конфигурации, которые генерируют объекты для Вас, таким образом, можно выгрузить их.

8
ответ дан 4 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: