java - Android广播接收器单元测试
问题描述
我是 Android 新手,正在学习BroadcastReceiver
。我正在尝试sendBroadcast
从 Android 单元测试接收器,并尝试检查接收器接收到的意图操作是否有效。如果我想将意图数据从接收器发送到单元测试,方法是什么。
public class ExampleUnitTest {
private Context mContext;
private AsyncTableProcess sgTable;
private final static String WHOLE_HOME_ASYNC = "com.atv.intent.action.WHOLE_HOME_AE";
// Executes each task synchronously using Architecture Components.
@Rule
public InstantTaskExecutorRule instantExecutorRule = new InstantTaskExecutorRule();
@Before
public void setUp() throws Exception {
mContext = mock(Context.class);
sgTable = new AsyncTableProcess();
}
@Test
public void addition_isCorrect() {
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
filter.addAction(WHOLE_HOME_ASYNC);
mContext.registerReceiver(sgTable, filter);
Intent intent = new Intent();
intent.setAction(WHOLE_HOME_ASYNC);
intent.putExtras(setWholeHomeBundleExtras());
mContext.sendBroadcast(intent);
}
}
public class AsyncTableProcess extends BroadcastReceiver {
private static final String sgsLiteWholeHomeAE = "com.atv.intent.action.WHOLE_HOME_AE";
@Override
public void onReceive(final Context context, Intent intent) {
final String message = intent.getAction();
//Response back to unitTest.
switch (message) {
case sgsLiteWholeHomeAE:
Bundle extras = intent.getExtras();
//updating hash table..
break;
}
}
}
解决方案
推荐阅读
- node.js - 有什么方法可以获取 shopify 帐户或应用程序或商店所有者的个人资料?
- javascript - 反应组件中的状态不会呈现
- python - 如何比较组件版本并在 dict 的 python 列表中找到最新版本?
- python - 如何避免 numpy 数组中的“for”循环
- c - 即使在正确初始化后,C结构也会打印错误的值
- loops - 为什么我的程序没有输出到 8086 模拟器中给定数组中的最小值?
- python - 将一台设备上的计算时间转换为另一台设备的正确方法是什么?
- python - Sobel过滤错误结果
- java - 字体大小未反映在 IText 中
- java - java.lang.ClassCastException 将类 com.package1.Class1 的对象转换为 com.package2.Class2 的对象