Пересмешивать и тестировать один и тот же объект данных между питоном и узлом - PullRequest
0 голосов
/ 22 мая 2019

TL; DR

Как смоделировать (для ut) один и тот же объект в python и узле без дублирования кода

Объяснение

В моей архитектуре проекта у нас есть два сервера, один написан на python, а другой на узле (я не знаком с сервером узлов).

Они оба имеют дело с одним и тем же логическим объектом, для примера мы будем использовать объект «Карта». Со стороны Python у нас есть объекты, которые описывают объект «Карта», такие как Карта, Место, Точка и т. Д.

Мы выполняем связь между серверами в json, которые описывают объект карты, поэтому у объекта Python Map есть функции ".to_json" и ".create_from_json".

Сервер узла - это то, что пользователь фактически использует, скажем, пользователь может создать «удивительную карту», ​​что мы знаем в нашей терминологии (например, карту с 5 местами, одно из которых находится на горе). ), Означает, что узел имеет код, который создает «удивительную карту» (не для тестирования).

Когда на стороне Python пишут юнит-тестирование, мы должны смоделировать «удивительную карту». На данный момент у нас есть несколько вспомогательных классов, которые создают несколько фиктивных карт, одна из которых - «удивительная карта». Нет никакой гарантии, что наш код мошенничества и код узла работают одинаково - , в этом проблема .

Решение, к которому мы пришли - : написание сервера узлов, который реализует логику насмешки для объекта «Карта» и будет возвращать jsons, поэтому будет API для «создать карту», ​​«добавить место» и, возможно, «создать удивительную карту» - оба сервера будут использовать это для блока -тестирование.

Это заставит нас запускать сервер узлов для всех модульных тестов, которые требуют дополнительных затрат.

Я буду рад любым предложениям о том, как решить проблему дублирования кода как для python, так и для модульного тестирования узлов с минимальными издержками.

Спасибо!

...