Android 系列 3.5使用Robolectric和JUnit测试4

263 篇文章 2 订阅
164 篇文章 0 订阅
3.5使用Robolectric和JUnit测试4


问题
你喜欢单元测试,但Android的原始测试框架是基于古老的Android 3.8,它运行在模拟器,所以它的速度很慢。

使用Robolectric,JUnit 4测试跑者是快。
讨论
这些说明是为Eclipse设置的。
假设您的“主”项目设置为正常的Android项目,在此项目中创建一个名为例如“test”的文件夹(不要将其标记为源文件夹),然后执行以下操作:
1.使用新建项目向导创建一个单独的项目(不使用Android测试项目向导)
2.使此项目依赖于您的主项目(构建路径→配置)
3.从新项目的构建路径中删除默认源文件夹src
4.仍然在构建路径中,单击链接其他源;浏览并选择| / MainProject / test
5.将Robolectric-3.1.jar添加到新项目的类路径,通过将其复制到libs /或通过在构建脚本(Maven或Gradle)中指定它。
6.通过从“新建类→JUnit测试”向导中选择JUnit 4,将JUnit 4(而不是3.8!)添加到新项目的类路径中。
7.注释您的JUnit 4测试以使用RoboLectrict测试运行器(示例如下)
8.在需要时使用Robolectric“阴影”类
接下来,创建一个具有以下特殊属性的Eclipse运行配置(此部分引自RoboLectric网站):
1.运行→运行配置
2.双击JUnit(不是Android JUnit测试)
名称:MyProjectTestConfiguration
4.选择在所选项目,包或源文件夹中运行所有测试:单选按钮
5.单击搜索按钮
6.选择MyProjectTest
7. TestRunner:JUnit 4
8.单击链接多个启动器可用选择一个在对话框的底部
9.选中使用配置特定设置框
10.选择Eclipse JUnit Launcher
11.单击“确定”
12.单击“参数”选项卡
13.在工作目录下:选择其他:单选按钮
14.单击工作区
15.选择MyProject(而不是MyProjectTest,其他编辑框里面的值应该是$ {workspace_loc:MyProject})
16.单击“确定”
17.单击关闭。
现在运行新的运行配置。实施例3-3是样品的机电单元测试。

实例3-3。机械测试

@RunWith(RobolectricTestRunner.class)
public class HistoryActivityTest {
private HistoryActivity activity;
private Button listButton;
@Before
public void setup() {
activity = new HistoryActivity();
activity.onCreate(null);
listButton = (Button) activity.findViewById(R.id.listButton);
}
@Test
public void didWeGetTheRightButton() {
assertEquals("History Log (Morning)", (String) listButton.getText());
}
@Test
public void listButtonShouldLaunchListActivity() throws InterruptedException {
assertNotNull(listButton);
boolean clicked = listButton.performClick();
assertTrue("performClick", clicked);
ShadowActivity shadowActivity = Robolectric.shadowOf(activity);
Intent startedIntent = shadowActivity.getNextStartedActivity();
assertNotNull("shadowActivity.getNextStartedActivity == null?", startedIntent);
ShadowIntent shadowIntent = Robolectric.shadowOf(startedIntent);
assertEquals(WeightListActivity.class.getName(), shadowIntent.getComponent().getClassName());
}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值