2016-02-10 53 views
1

我有遵循標準的Maven構建一個項目:爲什麼不解決JUnit的assertTrue?

  • 項目
    • SRC
      • 主要
        • 的Java
      • 測試
        • 的Java

在一些班級,assertTrue是能夠解決的問題,而在其他不能得到解決。

我從類(在src/java/test目錄中)解決並將其粘貼到無法解析assertTrue(在src/java/main目錄中)的類中的靜態導入,解決它。

因此使用import static org.junit.Assert.assertTrue;不起作用。使用Assert.assertTrue也不起作用。

編輯:

有一件事,我沒有在戰後初期明確的是,這不是一個標準的Java項目,單元測試。該項目是另一個Java程序的集成測試框架。因此,此項目中的所有代碼都存在以使用外部REST API測試另一個程序的功能。因此,爲什麼我在測試文件夾之外有一個Junit斷言。承認可能仍有機會清理這個問題。

+1

我沒有downvote。但似乎更好的主意是讓main下的代碼不依賴於JUnit,並找到實現斷言的不同方法,無論是使用language關鍵字還是使用自己的實用程序。 –

+0

這很有道理。我可能會重寫代碼的特定部分。我的主要目的是記錄如何指定依賴關係可能會影響範圍。 我看到關於assertTrue沒有解決的所有其他問題只提到靜態導入。對我而言,這還不夠。 – drusolis

回答

3

所以問題出在我的build.gradle文件中,我指定junit依賴關係爲testCompile依賴關係。這意味着它只適用於src/test目錄中的類。所以爲了解決我的問題,我將build.gradle改爲使用compile('junit:junit:4.12')

我也可以將未解析的文件移動到src/test目錄中,但該文件在邏輯上並不屬於該文件。

相關問題