2015-10-23 115 views
1

問題是我使用Mockito測試帶有一些受保護方法的類。爲了嘲笑他們,我需要我的測試在同一個軟件包中。 我現在使用下面的方案:Eclipse:用於測試的兩個項目之間的共享包

項目

--- SRC

------ some.package.for.class

------ ---MyClass.java

---測試//源文件夾

------ some.package.for.class //所以測試包看起來相同

---------Tests.java

它的作品,但問題是,我不明白如何。據我瞭解,BuildPath是Eclipse IDE的一部分,它幫助Eclipse爲我的項目找到文件和庫。 那麼如何保持測試在其他文件夾,但在同一個包?

另一個問題:是否有可能將java文件保存在一個包中,但在不同的項目中?

回答

0

是否有可能在同一個包但在不同的文件夾中有類文件?是。

是否有可能在同一個包中但在不同的項目中有類文件?是。

當類加載時,它們可能來自許多不同的地方,包括不同的JAR,但仍處於相同的包中。

關於Eclipse,你只需要確保你已經在Java Build Path> Source中選擇了所有的源文件夾(包括測試)。沒有限制,說同一個包中的所有類文件必須位於同一個文件夾中。

+0

謝謝!如果我的理解正確:構建路徑是eclipse IDE的一部分,所以如果我嘗試使用javac從命令行編譯.java文件,則無法使用build.properites,只會找到那些類規則:文件夾結構應該與包結構相同。 – Worm359

+0

@ A.Provakov:你說的沒錯,javac不能使用build.properties的內容,但是你可以指定其他位置來用'-classpath'選項搜索類文件。因此,要從命令行編譯測試,請使用'-classpath'選項指向項目的/ bin目錄。 – Soana

+0

@Soana:謝謝你的解釋。難道你不會意外地知道任何書,它將涵蓋JVM機制,類加載器,執行線程等主題?我在實習過程中學習java,所以在這些時候我真的感覺到缺乏對這門語言的基本知識。 – Worm359

0

最好對源文件使用maven conventionsGradle也遵守許多maven慣例)。

因此,我會使用:

  • 的src /主/爪哇/一些/包/對/類/ MyClass.java
  • 的src /測試/ JAVA /一些/包/對/類/MyClassTest.java
相關問題