使用C 单元测试框架集成测试Java应用程序
Integration Testing Java application with C++ unit testing framework
我有一个用java(client(和c (服务器(写的客户端/服务器应用程序。
我想知道是否有一种使用GTEST的方法(或任何其他测试框架,不一定在C 中,只要它不是Java框架(作为在Java端执行测试的基本框架。
基本上,我想实现的目标是以下 pseudo-code :
// inside MyClass.java
public class MyClass{
public int myMethod(){
return 42;
}
}
//-------------------\
// inside MyTest.cpp \
TEST_F(MyJavaClassTest, meaning_of_life)
{
ASSERT_EQUALS(MyClass.myMethod(), 42);
}
//--------\
// Output \
[ RUN ] MyJavaClassTest.meaning_of_life
[ OK ] MyJavaClassTest.meaning_of_life (0 ms)
即使您找到了这样的解决方案,我也会强烈建议对它们。原因是您将在Java和C 代码之间获得另一个互操作性层。
首先,您需要以某种方式将Java代码接口到C 客户端(在这种情况下,"客户端"是您的测试(。假设您已经完成了。
现在,当您的某些测试失败时会发生什么?基本上,如果您用Java写了它们,则必须找出:
- 是由于您的Java客户端代码中存在问题吗?
- 您的C 服务器代码中是否有问题?
- 由于您的客户端和服务器之间的Java/C 互动互动是一个问题吗?
如果在Java代码的顶部添加另一个Interop图层,则将另一个问题添加到这些问题:
:- 由于单位测试和您的客户端之间的C /Java互动而引起的问题?
根据我的个人经验(主要是基于C /C#代码库(,这种互操作性问题很少,但是一旦进入它们,很耗时。
so,,除非您打算在Java客户端上添加或维护以满足生产需求,否则请不要这样。如果您不喜欢Junit那么多,请尝试检查其他Java测试框架。
,反之亦然,如果Java代码上的C API是您的产品中所需的功能(从您的描述中看来,这似乎不太可能(,那么对Java客户端的C 测试将是"必须"。但是只有在这种情况下。
相关文章:
- Java应用程序的JNI-c++变量值
- QProcess不启动java应用程序
- 使用C 单元测试框架集成测试Java应用程序
- 如何分离以C++执行的 Java 应用程序的 stdin/stout/stderr 流
- 在Android Java应用程序中使用OpenCV Mat.OpenCV Mat出现NoClassDefFound错误
- 在技术上是否可以创建 Java 虚拟机的映像文件并使用它来更快地启动 Java 应用程序
- 是否可以在DOS 6.22中运行java应用程序
- HOWTO:C 应用程序作为Web服务提供商和Java应用程序作为Web服务客户端
- Java应用程序中的C 三角剖分库
- 使用自定义图形层运行专有[Java]应用程序
- CORBA C++/Java应用程序中服务器端的分段故障(核心转储)
- windows中java应用程序和C++应用程序之间的同步
- 写入 Windows 下 Java 应用程序中生成的控制台应用程序C++
- C++ 和 Java 应用程序之间的 NamedPipe interprocess
- 将 Java 应用程序移植到 C++ (qt)
- 如何调试 Java 应用程序的 C++ dll
- Java应用程序与C++应用程序之间的通信
- 安卓Java应用程序,仅支持C++头库
- 从windows应用程序获取正在运行的java应用程序的进程id
- 如何从c++应用程序启动java应用程序,传递参数并等待java应用程序的结果