BluetoothManager bm = (BluetoothManager)activity.getSystemService(Context.BLUetoOTH_SERVICE);BluetoothAdapter ba = bm.getAdapter();
我想使用Robolectric进行单元测试.我正在使用Robolectric 2.2.
但是我发现bm是null,我不知道如何模仿它.
测试蓝牙和其他系统服务的挑战是这些类都是最终的.
困难的方法(如果你愿意,可以跳过并转到powermock解决方案)
因此,如果你想要注入任何其他东西,你需要在最终的类周围做一个包装,然后提供一个实现转发到实际的蓝牙类和一个嘲笑你的东西的替代.但是然后需要更新所有编码以直接使用该包装而不是最终类.
PowerMock解决方案
PowerMock然而应该能够处理这些final classes.摘要(更多细节请点击链接)
>在测试用例的类级别使用@RunWith(powermockrunner.class)注释.>在测试用例的类级别使用@PrepareForTest(ClassWithFinal.class)注释.>使用PowerMock.createMock(ClassWithFinal.class)为该类的所有方法创建一个模拟对象(让我们称之为mockObject).>使用PowerMock.replay(mockObject)将模拟对象更改为重放模式.>使用PowerMock.verify(mockObject)将模拟对象更改为验证模式.
总结以上是内存溢出为你收集整理的使用Robolectric在android 4.3中测试BluetoothAdapter全部内容,希望文章能够帮你解决使用Robolectric在android 4.3中测试BluetoothAdapter所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)