Итак, у меня есть это действие, которое зависит от 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?