Während des Tests muss die Methode WifiManager.getScanResults()
eine nicht leere Liste zurückgeben. Ich benutze Robolectric. Ich fand die ShadowWifiManager
hat eine setScanResults()
Methode, die eine Liste von ScanResult
Objekte nimmt - aber sie haben keinen öffentlichen Konstruktor.Wie rufen Sie Robolectric ShadowWifiManager.setScanResults()?
1
A
Antwort
1
Ich fand, dass Robolectric hat einen Schatten von ScanResult
, auch, die eine newInstance
Methode hat.
shadowOf(((WifiManager)controller.get().getSystemService(Context.WIFI_SERVICE))).setScanResults(Collections.singletonList(ShadowScanResult.newInstance("Foo", "Bar", "", 1, 2)));
oder mehr verbosely: Es kann wie folgt verwendet werden final int level = 5; final int frequency = 100; final ScanResult scanResult = ShadowScanResult.newInstance( "A fake SSID", "A fake BSSID", "Some capabilities", level, frequency); final Context context = controller.get(); final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); shadowOf(wifiManager).setScanResults(Collections.singletonList(scanResult));