2013-02-28 66 views
2

我需要爲每次測試運行重新創建一個數據庫。我正在使用Robotium爲我的應用程序自動執行測試,因此每個測試都會延伸到ActivityInstrumentationTestCase2。我發現的是,我可以使用RenamingDelegatingContext來模擬新的Context。但只要我從ActivityInstrumentationTestCase2延伸,我不能使用ActivityUnitTestCase類中的setActivityContext()。可能是我走錯了路。請建議另一種可能的方式來重新創建數據庫,如果有的話。非常感謝你。如何爲每個測試運行重新創建一個數據庫?

回答

4

我嘗試了一段時間來使用renamingdelegatingcontext,但失敗了,因爲據我所知,在ActivityInstrumentationTestCase2中使用它我不得不嘲笑我不能做的應用程序,因爲我們的應用程序實際上擴展了應用程序, onCreate中的特定代碼,它變成了一個可怕的問題。

然後我把每一次運行之間簡單的方法,只是clearedthe數據庫(以及共享偏好和餅乾)

context.deleteDatabase(DATABASE_NAME) 

我發現這(surpisingly)不能太慢(相比沒有測試無論如何,都可以通過GUI進行)。您可能會發現,您需要手動調用您的應用程序,然後根據應用程序的編碼方式手動創建每個測試,以便正確設置它,但這很容易實現。

哦,只是說我以前把所有這些代碼放在一個新的測試類中,它擴展了ActivityInstrumentationTestCase2,所以它在setup/tearups中自動發生。

相關問題