2014-09-03 95 views
1

我拉着我的頭髮試圖在Android項目上運行普通的vanilla JUnit測試。我想爲不使用任何Android對象的POJO類編寫一個測試。事實上,我甚至無法進行測試工作,沒有任何測試!在Android Eclipse JUnit項目中運行單個類的vanilla JUnit測試

我讀過Google's "Testing Fundamentals" documentation,無數SO問題,我認爲我已經達到了一個愚蠢的新高度,因爲我似乎比Android歷史上的任何人都少。

什麼我應該做我最好的猜測是:

  1. 創建一個新的Android項目。我已經開發了我的原型應用程序,包括活動,POJO和其他一切 - 它在我的手機上運行良好。 「MyExample」
  2. 在Eclipse「包資源管理器」窗口中,在我想測試的android項目中,在「src」文件夾項中,右鍵單擊包項目:「com.example.myexample」,選擇「New」>「Other ...」,
  3. 然後在彈出的窗口中選擇「Android」>「Android Test Project」
  4. 在「Project Name」文本框中輸入「TestMyProject」,點擊「下一步「按鈕。
  5. 選擇「現有Android項目」單選按鈕,選擇「MyExample」,然後單擊「完成」按鈕。
  6. 在「Package Explorer」中展開「TestMyExample」,右鍵單擊包「com.example.myexample.test」,選擇「New」>「JUnit Test Case」
  7. 在該彈出窗口中,輸入名稱「對MyTestCase」。

然後我進入java文件如下:

package com.example.myexample.test; 

import junit.framework.TestCase; 

public class MyTestCase extends TestCase { 

    public void testHelloWorld(){ 

     assertTrue("Hello World Error", false); 

    } 

} 

最後,我右鍵單擊Package Explorer中的文件,選擇 「運行方式」> 「JUnit測試」,然後在彈出窗口中選擇「使用配置特定設置」,然後選擇「Eclipse JUnit Launcher」並點擊「確定」按鈕。

我得到在控制檯窗口中此錯誤:

Invalid layout of java.lang.String at value 
# 
# A fatal error has been detected by the Java Runtime Environment: 
# 
# Internal Error (javaClasses.cpp:136), pid=5216, tid=2756 
# fatal error: Invalid layout of preloaded class 

我似乎得到各種各樣的取決於我用什麼方法「佈局無效」的錯誤。

請幫忙!!

回答

1

除非您的問題中存在拼寫錯誤,否則一個可能的問題是您嘗試運行它們的方式。

選擇運行方式 - > Android JUnit測試,而不僅僅是JUnit測試。 這是因爲這些測試需要在設備上運行,所以構建比正常的JUnit測試涉及更多。

我猜你已經閱讀了docs,但這很容易錯過。

+0

好的,謝謝,工作!有沒有在android項目中測試對象,不參考任何android對象,沒有使用真實或虛擬設備,沒有使用roboelectric或mockito等的方法?只需在常規虛擬機上使用JUnit? – Jodes 2014-09-03 08:36:40

+0

是的,如果您正在測試的東西不使用Android框架中的任何東西,那麼您應該能夠爲其編寫一個正常的JUnit測試,並在JVM上將其作爲JUnit測試運行,並且應該可以正常工作。即使在代碼中使用Android框架,Robolectric也非常適合在JVM上運行單元測試。 Mockito與兩者無關,如果您想要模擬,您可以將它與任何需要的測試結合使用。 – 2014-09-03 08:42:40

+0

謝謝 - 我需要爲代碼(和/或測試)製作非Android項目以在JVM上使用純JUnit進行測試嗎? – Jodes 2014-09-03 08:50:08

相關問題