在测试过程中,我需要使 WifiManager.getScanResults()
方法返回一个非空列表。我正在使用 Robolectric。我发现 ShadowWifiManager
有一个 setScanResults()
方法,它接受 ScanResult
对象的列表 - 但它们没有公共(public)构造函数.
最佳答案
我发现 Robolectric 有 ScanResult
的影子,它也有一个 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/