簡體   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