使用Robolectric测试蓝牙活动

时间:2019-03-07 19:50:00

标签: android testing mocking robolectric

所以我有一个活动,它的android.bluetooth.BluetoothAdapter方法中依赖于onCreate。我想使用Robolectric测试此Activity,但找不到模拟这种依赖性的方法。

我在这里有什么选择?

我最幸运

@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)可以在这里帮助我吗?

0 个答案:

没有答案