Модульное тестирование кода C++ с использованием Java
Я унаследовал огромную кодовую базу C++ с некоторыми интеграционными тестами. Это критическая система, которая подает данные во многие последующие системы. Поскольку тесты очень ненадежны, наша команда не может уверенно продвигать изменения.
Мы хотим ввести некоторые тесты в систему, но большинство разработчиков имеют опыт работы с Java. Какие у нас есть варианты?
1) Изучите C++
2) Используйте JNI: не уверен, насколько это легко
2 ответа
Использование JNI добавляет еще один уровень сложности, и вы все равно будете изучать C++ - я бы не рекомендовал его, если вы не хотите использовать C++.
В зависимости от того, что делает система C++, вы можете выбрать различные стратегии тестирования. По моему опыту у меня была система, которая отвечала за обработку данных, и все данные были отправлены через сеть. В этом случае тесты проводились на python:
- мы проверили протокол
- мы проверили достоверность обработанных данных с определенным вводом (также контролируемым в python)
Мой случай был удачным, так как общение осуществлялось через сетевое соединение (мы могли буквально использовать любой язык, который хотели).
Если вы не можете использовать что-либо еще, кроме C++, я думаю, вам придется делать это на C++ (а не на Java + JNI + C++).
Я бы посоветовал вам попробовать JNA, который не требует написания кода на C или C++. Это медленнее, чем JNI, но для тестов это вряд ли имеет значение.