2011-12-14 16 views
5

He heredado una gran base de código C++ con algunas pruebas de integración. Este es un sistema crítico que alimenta datos a muchos sistemas posteriores. Como las pruebas son muy poco confiables, nuestro equipo no puede impulsar los cambios con confianza.Pruebas unitarias Código C++ utilizando Java

Queremos presentar algunas pruebas en el sistema, pero la mayoría de los desarrolladores tienen el fondo de Java. Qué opciones tenemos ?

1) aprender C++

2) El uso de JNI: No estoy seguro de lo fácil que es

+1

Para el registro: 1 es un subconjunto de 2. Aprenderá C++ sin importar qué. –

+0

3) ya que esas son pruebas de integración, tal vez llame al código de C++ como un proceso separado, alimente los datos de prueba y vea lo que produce – Thilo

+0

¿Ha considerado usar JNA? Es más lento que JNI, pero puede llamar al método C++ sin escribir ningún código C++. –

Respuesta

2

utiliza JNI añade otra capa de complejidad y todavía le se aprender C++ - yo no lo recomiendo si no quieres usar C++

Dependiendo de lo que el sistema C++ pueda, puede elegir diferentes estrategias de prueba. En mi experiencia, tenía un sistema que era responsable del procesamiento de datos y todos los datos se enviaban a través de la red. En este caso, las pruebas se realizaron en Python:

  1. nos registramos el protocolo
  2. se comprobó la validez de los datos procesados ​​dada una cierta entrada (también controlada en pitón)

Mi caso era una suerte uno ya que la comunicación se realizó a través de una conexión de red (literalmente podíamos usar el lenguaje que quisiéramos).

Si no puede usar nada más que C++, creo que tendrá que hacerlo en C++ (y no en Java + JNI + C++).

+0

No tengo suerte :( – NRS

0

Sugeriría que pruebe JNA que no requiere que escriba el código C o C++. Es más lento que JNI, pero para pruebas que es poco probable que importe.