Использовать юнит-тесты в необычной архитектуре при портировании с VS6 на VS2008? - PullRequest
0 голосов
/ 28 сентября 2010

у нас есть одно основное приложение, которое выполняет до 5 разных exe. Эти exes работают независимо и связываются друг с другом через UDP. На данный момент изменение этой архитектуры не планируется.

Мы хотим перенести все это с VS6 на VS2008. Я думаю о добавлении модульных тестов, чтобы убедиться, что после миграции все еще работает. Сейчас нет ни одного модульного теста.

Так что теперь у меня есть пара вопросов:

  • Какая инфраструктура модульного тестирования отлично работает с VS6 и VS2008? CppUnit, кажется, работает с обоими компиляторами, по крайней мере, я запустил его.
  • Как реализовать модульные тесты в вышеупомянутой архитектуре? Я вижу проблему в том, что у меня есть исполняемые файлы и нет библиотек, поэтому в этот момент мне кажется, что это немного сложно
  • Стоит ли создавать модульные тесты для обеих платформ или у вас есть более простое предложение?

Предложения, лучшие практики, приветствуются новые идеи:)

Спасибо

Ответы [ 2 ]

1 голос
/ 28 сентября 2010

Если вы хотите рассматривать каждый из исполняемых файлов как «модуль», то есть способ ввести тесты, не будучи слишком инвазивным.Это создаст модули, которые будут немного большими для многих людей, чтобы им было удобно (типичные размеры, когда люди говорят о модулях, это класс или исходный файл), но ваш механизм связи обеспечивает хороший способ подключиться к тестам.*

Учитывая вашу архитектуру и тот факт, что у вас нет тестового набора для кода, я бы написал тестовый набор, который может взаимодействовать с каждым из исполняемых файлов изолированно, используя интерфейсы UDP.При выполнении тестов работает только один исполняемый файл (кроме тестового кода).Тестовый код имитирует другие исполняемые файлы, прослушивая их соответствующие порты UDP и предоставляя ответы в соответствии с требованиями тестового примера.Тестовый сценарий также стимулирует тестируемый исполняемый файл, отправляя ему запросы UDP.Если задействован также GUI / TUI, может потребоваться, чтобы части тестов выполнялись вручную.

1 голос
/ 28 сентября 2010

Если они взаимодействуют через UDP, и вы хотите убедиться, что интеграция между компонентами работает сейчас и позже, вы можете написать автоматические тесты для интерфейсов UDP в MSTest или NUnit в VS2008.

Написать тесты в VS2008и отправьте ввод / подтверждение вывода интерфейсов в приложения .exe.Затем, когда вы переключаетесь на .NET, просто наведите свои тесты на новую конечную точку для .NET .exe и запустите их, чтобы убедиться, что все входные и выходные данные совпадают.

Я думаю, вы получите больше отдачи заваше время писать модульные тесты исключительно для нового приложения, но писать тесты для внешних интерфейсов UDP, чтобы убедиться, что миграция прошла успешно.

...