[英]Integration Testing Java application with C++ unit testing framework
我有一个用Java(客户端)和C ++(服务器)编写的客户端/服务器应用程序。
我想知道是否有一种方法可以使用Gtest(或任何其他测试框架,不一定是C ++,只要它不是Java框架)作为在Java端执行测试的基础框架。
因此,基本上,我想要实现的是以下伪代码 :
// 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 ++ / C#混合代码库),这种互操作性问题很少见,但是一旦接触到它们就会非常耗时。
因此, 除非您打算出于生产需求而在Java客户端上添加或维护 C ++接口,否则请不要这样做。 如果您不太喜欢JUnit,请尝试检查其他Java测试框架 。
而且,反之亦然,如果其在Java代码中C ++ API是在您的产品所需的功能 (这似乎从你的描述不太可能),那么C ++对Java客户端的测试将是一个“必须”。 但只有在这种情况下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.