2011-07-01 63 views
1

我是新的JUnit測試,我試圖通過測試這段代碼的數據庫訪問:Android的JUnit進行測試卡

public class SeuticketTest extends ActivityInstrumentationTestCase2<Seuticket> { 

    private Seuticket mActivity; 

    public SeuticketTest(String name) { 
     super("br.com.code.seuticket.android.view",Seuticket.class); 
    setName(name); 
    } 

    @Override 
    protected void setUp() throws Exception { 
     super.setUp(); 
     mActivity = this.getActivity(); 
    } 


    public void testTicketInsertion() { 
     Ticket ticket = new Ticket("123453", "Vip", new Date(), "Vila Country"); 
     PersistenceTicket persistence = new PersistenceTicket(mActivity); 
     persistence.addTicket(ticket); 
         assertEquals(persistence.fetchTicket(ticket.getTicketCode()).getTicketCode(),ticket.getTicketCode()); 
    } 
    public void testUserInsertion() { 
     User user = new User(); 
     user.setPin("1234"); 
     user.setPhone("9241173"); 
     PersistenceUser persistence = new PersistenceUser(mActivity); 
     persistence.addUser(user); 
     assertEquals(persistence.fetchUser().getPin(), user.getPin()); 
    } 

} 

但我的測試中卡住完成testTicketInsertion後,第二次測試繼續運行下去,有時在運行測試之前,此消息會在控制檯顯示: 測試運行失敗:進程崩潰。

任何想法? 希望在這裏找到答案。 謝謝大家!

+0

控制檯/調試日誌中的任何堆棧跟蹤?當你只運行第一次測試時會發生什麼?只有第二個?當你改變命令?是否有可能單獨測試PersistenceTicket(提供一個模擬Activity或其他東西?)如果persistence.fetchUser()方法是罪魁禍首,我不會感到驚訝,但是您必須調試它。 – phtrivier

+0

aparently按字母順序運行測試...不重要的是寫的順序,有時出現在控制檯的錯誤:進程崩潰。不知道它是從哪裏來的......我試圖抹去第二種方法,並寫出另一種方法,發生同樣的事情。 – JRafaelM

+0

我得到同樣的東西。 @phtrivier,沒有logcat結果,只有測試的控制檯說過程崩潰。 – Steven

回答

1

我是Android的JUnit測試的新品牌,遇到同樣的問題。確保你已經重寫tearDown方法並且正在調用super。

protected void tearDown() throws Exception { 
    super.tearDown(); 
} 
+0

爲什麼沒有人這是什麼? – user1145201