android - 如何调用Robolectric的ShadowWifiManager.setScanResults()?

标签 android unit-testing robolectric

在测试过程中,我需要使 WifiManager.getScanResults() 方法返回一个非空列表。我正在使用 Robolectric。我发现 ShadowWifiManager 有一个 setScanResults() 方法,它接受 ScanResult 对象的列表 - 但它们没有公共(public)构造函数.

最佳答案

我发现 RobolectricScanResult 的影子,它也有一个 newInstance 方法。可以这样使用:

shadowOf(((WifiManager)controller.get().getSystemService(Context.WIFI_SERVICE))).setScanResults(Collections.singletonList(ShadowScanResult.newInstance("Foo", "Bar", "", 1, 2)));

或者,更详细地说: 最终int等级=5; 最终整数频率= 100; 最终扫描结果 scanResult = ShadowScanResult.newInstance( “假SSID”、“假BSSID”、“某些功能”、级别、频率); 最终上下文上下文=controller.get(); 最终WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); ShadowOf(wifiManager).setScanResults(Collections.singletonList(scanResult));

关于android - 如何调用Robolectric的ShadowWifiManager.setScanResults()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38705500/

相关文章:

android - 使用最后选择的 fragment 重新打开应用程序

objective-c - 如何模拟类方法(+)?

android - 在 Robolectric 中模拟单击下一步/完成按钮

android - intellij + gradle + robolectric + Espresso

Android robolectric 单元测试从 drawable 加载位图

android - 如何为用户提供选项以在android中选择自定义相机

android - onItemClick 中的 fragment 实例

java - 如何从 Activity 调用自定义 View 中的函数

javascript - 是否可以在同一模块中监视(开 Jest )多个方法?

python - Monkey 修补模块中的函数以进行单元测试