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後,第二次測試繼續運行下去,有時在運行測試之前,此消息會在控制檯顯示: 測試運行失敗:進程崩潰。
任何想法? 希望在這裏找到答案。 謝謝大家!
控制檯/調試日誌中的任何堆棧跟蹤?當你只運行第一次測試時會發生什麼?只有第二個?當你改變命令?是否有可能單獨測試PersistenceTicket(提供一個模擬Activity或其他東西?)如果persistence.fetchUser()方法是罪魁禍首,我不會感到驚訝,但是您必須調試它。 – phtrivier
aparently按字母順序運行測試...不重要的是寫的順序,有時出現在控制檯的錯誤:進程崩潰。不知道它是從哪裏來的......我試圖抹去第二種方法,並寫出另一種方法,發生同樣的事情。 – JRafaelM
我得到同樣的東西。 @phtrivier,沒有logcat結果,只有測試的控制檯說過程崩潰。 – Steven