Модульное тестирование кода C++ с использованием Java

Я унаследовал огромную кодовую базу C++ с некоторыми интеграционными тестами. Это критическая система, которая подает данные во многие последующие системы. Поскольку тесты очень ненадежны, наша команда не может уверенно продвигать изменения.

Мы хотим ввести некоторые тесты в систему, но большинство разработчиков имеют опыт работы с Java. Какие у нас есть варианты?

1) Изучите C++

2) Используйте JNI: не уверен, насколько это легко

2 ответа

Использование JNI добавляет еще один уровень сложности, и вы все равно будете изучать C++ - я бы не рекомендовал его, если вы не хотите использовать C++.

В зависимости от того, что делает система C++, вы можете выбрать различные стратегии тестирования. По моему опыту у меня была система, которая отвечала за обработку данных, и все данные были отправлены через сеть. В этом случае тесты проводились на python:

  1. мы проверили протокол
  2. мы проверили достоверность обработанных данных с определенным вводом (также контролируемым в python)

Мой случай был удачным, так как общение осуществлялось через сетевое соединение (мы могли буквально использовать любой язык, который хотели).

Если вы не можете использовать что-либо еще, кроме C++, я думаю, вам придется делать это на C++ (а не на Java + JNI + C++).

Я бы посоветовал вам попробовать JNA, который не требует написания кода на C или C++. Это медленнее, чем JNI, но для тестов это вряд ли имеет значение.

Другие вопросы по тегам