我拉着我的頭髮試圖在Android項目上運行普通的vanilla JUnit測試。我想爲不使用任何Android對象的POJO類編寫一個測試。事實上,我甚至無法進行測試工作,沒有任何測試!在Android Eclipse JUnit項目中運行單個類的vanilla JUnit測試
我讀過Google's "Testing Fundamentals" documentation,無數SO問題,我認爲我已經達到了一個愚蠢的新高度,因爲我似乎比Android歷史上的任何人都少。
什麼我應該做我最好的猜測是:
- 創建一個新的Android項目。我已經開發了我的原型應用程序,包括活動,POJO和其他一切 - 它在我的手機上運行良好。 「MyExample」
- 在Eclipse「包資源管理器」窗口中,在我想測試的android項目中,在「src」文件夾項中,右鍵單擊包項目:「com.example.myexample」,選擇「New」>「Other ...」,
- 然後在彈出的窗口中選擇「Android」>「Android Test Project」
- 在「Project Name」文本框中輸入「TestMyProject」,點擊「下一步「按鈕。
- 選擇「現有Android項目」單選按鈕,選擇「MyExample」,然後單擊「完成」按鈕。
- 在「Package Explorer」中展開「TestMyExample」,右鍵單擊包「com.example.myexample.test」,選擇「New」>「JUnit Test Case」
- 在該彈出窗口中,輸入名稱「對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
我似乎得到各種各樣的取決於我用什麼方法「佈局無效」的錯誤。
請幫忙!!
好的,謝謝,工作!有沒有在android項目中測試對象,不參考任何android對象,沒有使用真實或虛擬設備,沒有使用roboelectric或mockito等的方法?只需在常規虛擬機上使用JUnit? – Jodes 2014-09-03 08:36:40
是的,如果您正在測試的東西不使用Android框架中的任何東西,那麼您應該能夠爲其編寫一個正常的JUnit測試,並在JVM上將其作爲JUnit測試運行,並且應該可以正常工作。即使在代碼中使用Android框架,Robolectric也非常適合在JVM上運行單元測試。 Mockito與兩者無關,如果您想要模擬,您可以將它與任何需要的測試結合使用。 – 2014-09-03 08:42:40
謝謝 - 我需要爲代碼(和/或測試)製作非Android項目以在JVM上使用純JUnit進行測試嗎? – Jodes 2014-09-03 08:50:08