使用Java对C++代码进行单元测试

NRS*_*NRS 5 c++ java legacy-code

我继承了一个巨大的c ++代码库和一些集成测试.这是一个将数据提供给许多下游系统的关键系统.由于测试非常不可靠,我们的团队无法自信地推动变革.

我们想在系统中引入一些测试,但大多数开发人员都有Java背景.我们有什么选择?

1)学习C++

2)使用JNI:不确定它有多容易

INS*_*INS 2

使用 JNI 会增加另一层复杂性,但您仍然学习 C++ - 如果您不想使用 C++,我不会推荐它。

根据 C++ 系统的功能,您可以选择不同的测试策略。根据我的经验,我有一个负责数据处理的系统,所有数据都是通过网络发送的。在本例中,测试是在 python 中完成的:

  1. 我们检查了协议
  2. 我们检查给定特定输入的处理数据的有效性(也在Python中控制)

我的情况很幸运,因为通信是通过网络连接完成的(我们实际上可以使用我们想要的任何语言)。

如果除了 C++ 之外你不能使用其他任何东西,我认为你必须使用 C++(而不是 Java + JNI + C++)。