Android BluetoothAdapter Mocking
Estoy tratando de simular la aplicación de prueba de Bluetooth, pero mi primer paso de crear un objeto de burla de la clase BluetoothAdapter no está funcionando!
Estoy usando powermockito con burla fácil.
- VerifyError al ejecutar jUnit Test en Android 1.6
- Prueba de una clase Fragment en aislamiento usando Mockito
- Android: Escribir casos de prueba para Fragmentos
- Habilitar ubicaciones de Mock en Android Marshmallow
- Mockito: ¿Cómo uso getString con mockito?
mBluetoothAdapter = (BluetoothAdapter)PowerMock.createMock(BluetoothAdapter.class);
Esto falla. Con el siguiente seguimiento de pila
java.lang.IllegalArgumentException: No visible constructors in class android.bluetooth.BluetoothAdapter at org.easymock.internal.DefaultClassInstantiator.getConstructorToUse(DefaultClassInstantiator.java:94) at org.easymock.internal.AndroidClassProxyFactory.createProxy(AndroidClassProxyFactory.java:48) at org.easymock.internal.MocksControl.createMock(MocksControl.java:114) at org.easymock.internal.MocksControl.createMock(MocksControl.java:88) at org.easymock.internal.MocksControl.createMock(MocksControl.java:79) at org.powermock.api.easymock.PowerMock.doCreateMock(PowerMock.java:2212) at org.powermock.api.easymock.PowerMock.doMock(PowerMock.java:2163) at org.powermock.api.easymock.PowerMock.createMock(PowerMock.java:89) at com.xxx.blesimplesample.test.MainActivityTest.setUp(MainActivityTest.java:59) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1710)
¿Alguien ha utilizado cualquier marco de burla para la aplicación de Bluetooth burla? Cualquier sugerencia será útil
- ¿Cuál es el propósito de las anotaciones de @SmallTest, @MediumTest y @LargeTest en Android?
- Uso de una carpeta de recursos en el proyecto de prueba para datos de cadena de prueba
- Cómo agregar carpetas de prueba a un antiguo proyecto de Android Studio
- La manera más rápida de crear una actividad simulada para probar
- Cómo crear un módulo de prueba para probar una biblioteca de Android en IntelliJ IDEA
- ¿Cómo crear clases de prueba que se pueden usar tanto en las pruebas de Android como en las de unidad?
- Prácticas recomendadas para la prueba de unidades de Android?
- La API de Android Drive startResolutionForResult devuelve RESULT_CANCELLED
BluetoothAdapter
en el marco de Android se declara final
, por lo que en el momento en que hizo esta pregunta, no se podía burlarse, ni con Mockito ni con Robolectric.
Sin embargo, las pruebas de unidades Android han cambiado mucho desde entonces. Con las versiones recientes de las herramientas, cuando se construyen las pruebas unitarias, las herramientas generan un android.jar
patched con todas las s final
eliminadas. Esto hace que todas las clases de Android estén disponibles para burlarse. Hoy en día, si desea simular cualquier código Bluetooth, puede hacerlo de la manera estándar. El código que ya has probado "funcionará" si actualizas las últimas herramientas. Alternativamente, Robolectric tiene una clase ShadowBluetoothAdapter
incorporada ahora.
- Native Debug Android Studio
- Android SimpleOnPageChangeListener – Determina la dirección de desplazamiento