簡體   English   中英

模擬物體與Mockito Kotlin不是Stubbing方法

[英]Mocked Object with Mockito Kotlin Not Stubbing Method

我有以下代碼:

@RunWith(MockitoJUnitRunner::class)
class OnboardingViewModelTest {

    @Mock lateinit var authService : AuthService
    lateinit var internetProvider: InternetStatusProvider
    private lateinit var viewModel: OnboardingViewModel

    @Before
    fun setup() {
        internetProvider = mock()
        whenever(internetProvider.hasInternet()).thenReturn(true)
    }

InternetStatusProvider的構造函數如下所示:

InternetStatusProvider(context:Context)

當存在internetProvider.hasInternet()方法時,我得到一個NullPointerException ,因為該方法的實現使用構造函數context傳遞的context並且正在調用實際方法?

我在這里錯過了什么? 重點是存根這個方法的實際執行情況?

Mockito不能存在最終方法。 如果您嘗試從模擬實例執行最終方法,則將執行實際代碼。 由於Kotlin的函數默認為final ,因此您必須將open修飾符添加到函數中。

還有一個孵化功能,在這的Mockito 確實允許最終的類和方法,這可能是值得一看的嘲諷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM