kotlin модульное тестирование при реализации анонимного класса - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть метод в классе, который реализует интерфейс и обновляет значение живых данных из реализованного метода. Я использую библиотеку mockk для написания тестовых случаев в Kotlin. Получение «io.mockk.MockKException: пропущенные вызовы внутри каждого блока {...}». при попытке проверить этот фрагмент кода.


fun setListener() {
        connectingModelObject.setConnectivityModelEventListener(object : ConnectivityModelEventNotifier  {

            override fun pinDisplayRequest() {
                pinDisplayLiveData.postValue(true)
            }

            override fun updateConnectivityMessage(status: Int) {
                updateConnectivityStatusLiveData.postValue(status)
            }

            override fun onConnectionSuccessful(status: Boolean) {
                connectionSuccessfulLiveData.postValue(status)
            }

            override fun acceptDisplayRequest() {
                acceptDisplayRequestLiveData.postValue(true)
            }
        })
    }

Вот мой тестовый код


class ConnectivityViewModelTest {
    lateinit var connectingContextModel: ConnectingContextModel
    lateinit var connectivityViewModel: ConnectivityViewModel
    lateinit var connectivityModelEventNotifier: ConnectingContextModel.ConnectivityModelEventNotifier

    @Before
    fun setUp() {
        connectivityViewModel = ConnectivityViewModel()
        connectingContextModel = mockk()
        connectivityModelEventNotifier = mockk()
    }

    @get:Rule
    var rule: TestRule = InstantTaskExecutorRule()

   @Test
    fun `test setListener void`() {
        every { connectivityViewModel.setListener() }
        connectivityViewModel.setListener()
        verify { connectivityViewModel.setListener() }
    }

    @After
    fun tearDown() {
    }
}

Кто-нибудь сделал то же самое? Если да, то, пожалуйста, помогите

...