2012-02-03 61 views
0

我需要爲插入或更新數據庫的活動編寫一個測試,具體取決於在意圖中作爲附加內容發送給它的內容。爲了測試這個活動,我首先需要設置數據庫來防止重複鍵和其他與數據庫相關的問題。在編寫測試時初始化活動之前設置數據庫

問題是,要設置數據庫,我需要一個上下文,我知道如何獲取上下文的唯一方法是調用getActivity(),但它會在爲活動設置之前讀取數據庫。

因此,使用ActivityInstrumentationTestCase2的子類,可以在初始化活動之前設置數據庫嗎?

我想做什麼的psedudo-exampel。

public void testActivityWithDatabaseEmpty(){ 
    //Setup database 
    SQLLiteDatabase myDb = getDatabase(); // how to do this in a test without first calling the activity? 
    emptyTestTable(myDb); 

    //Setup intent 
    Intent intent = getIntentWithNonExistingKey(); 
    setActivityIntent(intent); 

    //Get activity 
    MyActivity activity = getActivity(); 
    Button button = activity.findById(R.id.button); 
    assertAreEquals("", button.getText); 
} 

在此先感謝 羅蘭

回答

1

我不知道你需要在設置到底該怎麼做,而是一種方法可以是使用作爲上下文中的應用。我親自走過一條道路,在我的測試中,我使用了一個特殊的數據庫名稱,不確定這是否適用於您的情況。我在此描述了blog post

相關問題