小编dsa*_*ria的帖子

mockk 验证 lambda 是在模拟中传递的

我正在尝试测试该方法 getSongsList

class SongsRemoteDataSource @Inject constructor(
    private val resultParser: ResultParser,
    private val songsService: SongsService
) {

    suspend fun getSongsList(query: String): Result<SongsResponse> =
        resultParser.parse { songsService.getSongsList(query) }
}
Run Code Online (Sandbox Code Playgroud)

基本上我正在尝试测试是否使用正确的 lambda 作为参数调用了模拟

class SongsRemoteDataSourceTest {

    @RelaxedMockK
    private lateinit var resultParser: ResultParser
    @RelaxedMockK
    private lateinit var songsService: SongsService

    private lateinit var songsRemoteDataSource: SongsRemoteDataSource

    @Before
    fun setUp() {
        MockKAnnotations.init(this)
        songsRemoteDataSource = SongsRemoteDataSource(resultParser, songsService)
    }

    @Test
    fun getSongsList() = runBlockingTest {
        val query = "query"

        songsRemoteDataSource.getSongsList(query)

        coVerify { resultParser.parse { songsService.getSongsList(query) } }
    }
} …
Run Code Online (Sandbox Code Playgroud)

kotlin mockk

6
推荐指数
1
解决办法
1389
查看次数

标签 统计

kotlin ×1

mockk ×1