繁体   English   中英

如何在OSGi中的不同包中扩展测试类

[英]How can I extend test class in different bundle in OSGi

现在,我的项目正在OSGi上进行。 我在捆绑A中有一个抽象类Parent。而Child1,Child2,Child3在其他捆绑中。 由于我在Parent类中有很多功能。 所以我在捆绑软件A中编写了PartentTest。但是在其他捆绑软件中看不到ParentTest。 因此,我无法在Child1Test中重用代码。...这意味着我不知道Childs中的公共功能是否正确

我该怎么办?

如果要在捆绑软件A中共享抽象的Parent类,那么无疑将导出其所在的软件包,而您的孩子1、2和3捆绑软件将导入该软件包。

您需要对ParentTest进行完全相同的ParentTest 它需要放在导出的包中,以便ChildTests可以导入它。

通常,我不会将测试代码与普通代码放在同一包中。 相反,我将它们放在单独的捆绑软件中,仅用于测试。 另外,您可以在OSGi之外对类进行单元测试。

进行OSGi捆绑软件白盒单元测试的最好方法是使用片段,这些片段可以访问捆绑软件的所有内部类,而无需在生产中交付。

在您的方案中,最好将ParentTest放在bundle A的一个片段中(放在该片段导出的测试包中,或与Parent放在同一包中)。 然后为每个ChildTest使用子捆绑包的片段(如果选择了该样式,则让该片段导入测试包)。

您可能需要做一些额外的调整,以确保片段可以在编译时看到抽象类(所有类在运行时都能正常工作)。 如果您使用的是Eclipse,请将Eclipse-ExtensibleAPI标头添加到父包中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM