Тестирование активности Bluetooth с Robolectric - PullRequest
0 голосов
/ 07 марта 2019

Итак, у меня есть это действие, которое зависит от android.bluetooth.BluetoothAdapter в его методе onCreate. Я хочу протестировать эту активность с помощью Robolectric, но я не нахожу способа высказать эту зависимость.

Какие у меня есть варианты?

Мне повезло больше

@RunWith(RobolectricTestRunner::class)
@Config(application = MockApp::class)
class BluetoothActivityTest {

    @get:Rule
    var rule = MockitoJUnit.rule()!!

    @Test
    fun test() {
        val activityController = Robolectric.buildActivity(BluetoothActivity::class.java)

        // Spy on the activity and mock out the method that is dependent on android.bluetooth
        val spy = Mockito.spy(activityController.get())

doReturn(mock(ScannerClient::class.java)).`when`(spy).createScannerClient()

            spy.onCreate(null, null)

        }
    }

Но у меня возникают проблемы при запуске действия с activityController.start()

Я не могу позвонить activityController.create(), потому что тогда я не могу смоделировать зависимость до того, как она выйдет из строя. Может ли здесь помочь мне внедрение зависимостей, например, Dagger?

...