【问题标题】:Android JUNIT testing stuckAndroid JUNIT 测试卡住了
【发布时间】:2011-07-01 18:45:17
【问题描述】:

我是 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,没有 logcat 结果,只有测试控制台说 Process crashed。

标签: android junit automated-tests


【解决方案1】:

我是 Android 中 JUnit 测试的新手,遇到了同样的问题。确保你已经重写了 tearDown 方法并且正在调用 super.

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-19
    • 2016-10-22
    • 2013-12-26
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    相关资源
    最近更新 更多