[英]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.