在Android上测试异步任务

发表于:2014-5-09 11:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Talisman_Lin    来源:51Testing软件测试网采编

分享:
  应用到我们自己的测试集合后,当得到预期之外的结果时,只是让这一结果失败。我们可以看到为什么在onFailure()函数中我们调用了fail()。接下来,即使我用一个错误的用户名也能通过这个测试。思前想后,测试似乎是按照代码顺序执行的,但并没有等到回调函数的结果返回再向下执行。
  这显然不是一个好方法。因为现在的程序经常通过异步任务和回调方法从后台获取数据。尝试UIThread测试仍然不行。
  最后,我发现下面这种方法可以行得通。只是用简单的CountDownLatch信号对象来实现wait-notify机制(你也可以用syncronized(lock){...lock.notify();},只是这样代码并不美观而已)
  那么之前的代码就变成了下面的模样:
finalCountDownLatchsignal=newCountDownLatch(1);
mLoginManager.performLoginWithUsername("username","password",newOnLoginListener(){
@Override
publicvoidonFailure(Throwablethrowable){
fail();
signal.countDown();
}
Override
publicvoidonSuccess(Usercustomer){
signal.countDown();
}
});
signal.await();
22/2<12
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号