Kotlin Can';t mock com.github.kittinunf.fuel.fuel与mock

Kotlin Can';t mock com.github.kittinunf.fuel.fuel与mock,kotlin,junit,mockk,fuel,Kotlin,Junit,Mockk,Fuel,在以下问题上我需要你的帮助:我不能被燃料嘲笑。打电话给。 我所尝试的: 这是服务级别,将在其中调用燃油 class JiraService { private val logger: Logger = LoggerFactory.getLogger(JiraService::class.java) fun checkIfUsersExistInJira(usernames: List<String>, jiraConfig: Configuration): Bool

在以下问题上我需要你的帮助:我不能被燃料嘲笑。打电话给。 我所尝试的:

这是服务级别,将在其中调用燃油

class JiraService {
    private val logger: Logger = LoggerFactory.getLogger(JiraService::class.java)

    fun checkIfUsersExistInJira(usernames: List<String>, jiraConfig: Configuration): Boolean {
        var checkResultOk = true;
        val encodedCredentials =

        usernames.forEach {
            Fuel.get("${jiraConfig[url]}/rest/api/2/groupuserpicker?query=${it}&maxResults=1")
                .appendHeader("Authorization", "Basic ...")
                .appendHeader("Content-Type", "application/json")
                .responseObject(UserInfoDeserializer)
                .third
                .fold(
                    failure = { throwable ->
                        logger.error(
                            "Can't check users in jira for user $it",
                            throwable
                        )
                    },
                    success = { userExists ->
                        checkResultOk = checkResultOk && userExists
                    }
                )
        }
        return checkResultOk
    }
}
所以它总是在忽略fueMock的情况下发出真正的燃料呼叫。 我做错了什么


谢谢你的帮助

如果有人需要,以下测试有效:

@ExtendWith(MockKExtension::class)
类JiraServiceTest{

private val jiraConfig = createJiraConf()
private val fuelRequest1 = mockk<DefaultRequest>()
private val fuelRequest3 = mockk<DefaultRequest>()
private val fuelRequest4 = mockk<DefaultRequest>()
private val fuelResponse = mockk<Response>()

@BeforeEach
fun setUp() {
    mockkObject(Fuel)
    every {
        Fuel.get(eq("${jiraConfig[url]}/rest/api/2/groupuserpicker?query=user_1@test.com&maxResults=1"))
    } returns fuelRequest1
    every {
        Fuel.get(eq("${jiraConfig[url]}/rest/api/2/groupuserpicker?query=user_3@test.com&maxResults=1"))
    } returns fuelRequest3
    every {
        Fuel.get(eq("${jiraConfig[url]}/rest/api/2/groupuserpicker?query=user_4@test.com&maxResults=1"))
    } returns fuelRequest4

    every { fuelRequest1.appendHeader(any<String>(), any()) } returns fuelRequest1
    every { fuelRequest3.appendHeader(any<String>(), any()) } returns fuelRequest3
    every { fuelRequest4.appendHeader(any<String>(), any()) } returns fuelRequest4

    every { fuelRequest1.responseObject(UserInfoDeserializer) } returns ResponseResultOf(
        first = fuelRequest1,
        second = fuelResponse,
        third = Result.success(false)
    )
    every { fuelRequest3.responseObject(UserInfoDeserializer) } returns ResponseResultOf(
        first = fuelRequest3,
        second = fuelResponse,
        third = Result.success(true)
    )
    every { fuelRequest4.responseObject(UserInfoDeserializer) } returns ResponseResultOf(
        first = fuelRequest4,
        second = fuelResponse,
        third = Result.success(true)
    )
}

@Test
fun `will return FALSE for user not existing in jira`() {
    // given
    val usernames = listOf("user_1@test.com", "user_3@test.com", "user_4@test.com")

    // when
    val result = JiraService().checkIfUsersExistInJira(usernames, jiraConfig)

    // then
    assertThat(result, equalTo(false))
}

@Test
fun `will return TRUE for users existing in jira`() {
    // given
    val usernames = listOf("user_3@test.com", "user_4@test.com")

    // when
    val result = JiraService().checkIfUsersExistInJira(usernames, jiraConfig)

    // then
    assertThat(result, equalTo(true))
}
private val jiraConfig=createJiraConf()
private val fuelRequest1=mockk()
private val fuelRequest3=mockk()
private val fuelRequest4=mockk()
private val fuelResponse=mockk()
@之前
趣味设置(){
模拟对象(燃料)
每一个{
get(eq(“${jiraConfig[url]}/rest/api/2/groupuserpicker?query=user_1@test.com&maxResults=1“))
}返回fuelRequest1
每一个{
get(eq(“${jiraConfig[url]}/rest/api/2/groupuserpicker?query=user_3@test.com&maxResults=1“))
}返回fuelRequest3
每一个{
get(eq(“${jiraConfig[url]}/rest/api/2/groupuserpicker?query=user_4@test.com&maxResults=1“))
}返回fuelRequest4
每个{fuelRequest1.appendHeader(any(),any())}返回fuelRequest1
每个{fuelRequest3.appendHeader(any(),any())}返回fuelRequest3
每个{fuelRequest4.appendHeader(any(),any())}返回fuelRequest4
每个{fuelRequest1.responseObject(UserInfoDeserializer)}返回ResponseResultOf(
first=fuelRequest1,
秒=燃料响应,
第三个=结果。成功(false)
)
每个{fuelRequest3.responseObject(UserInfoDeserializer)}返回ResponseResultOf(
first=fuelRequest3,
秒=燃料响应,
第三个=结果。成功(真)
)
每个{fuelRequest4.responseObject(UserInfoDeserializer)}返回ResponseResultOf(
first=fuelRequest4,
秒=燃料响应,
第三个=结果。成功(真)
)
}
@试验
fun`将为jira`()中不存在的用户返回FALSE{
//给定
val usernames=listOf(“用户_1@test.com“,”用户_3@test.com“,”用户_4@test.com")
//什么时候
val result=JiraService()
//然后
资产(结果,相等(错误))
}
@试验
fun`对于jira`()中存在的用户将返回TRUE{
//给定
val usernames=listOf(“用户_3@test.com“,”用户_4@test.com")
//什么时候
val result=JiraService()
//然后
资产(结果,相等(真实))
}
}

@ExtendWith(MockKExtension::class)
private val jiraConfig = createJiraConf()
private val fuelRequest1 = mockk<DefaultRequest>()
private val fuelRequest3 = mockk<DefaultRequest>()
private val fuelRequest4 = mockk<DefaultRequest>()
private val fuelResponse = mockk<Response>()

@BeforeEach
fun setUp() {
    mockkObject(Fuel)
    every {
        Fuel.get(eq("${jiraConfig[url]}/rest/api/2/groupuserpicker?query=user_1@test.com&maxResults=1"))
    } returns fuelRequest1
    every {
        Fuel.get(eq("${jiraConfig[url]}/rest/api/2/groupuserpicker?query=user_3@test.com&maxResults=1"))
    } returns fuelRequest3
    every {
        Fuel.get(eq("${jiraConfig[url]}/rest/api/2/groupuserpicker?query=user_4@test.com&maxResults=1"))
    } returns fuelRequest4

    every { fuelRequest1.appendHeader(any<String>(), any()) } returns fuelRequest1
    every { fuelRequest3.appendHeader(any<String>(), any()) } returns fuelRequest3
    every { fuelRequest4.appendHeader(any<String>(), any()) } returns fuelRequest4

    every { fuelRequest1.responseObject(UserInfoDeserializer) } returns ResponseResultOf(
        first = fuelRequest1,
        second = fuelResponse,
        third = Result.success(false)
    )
    every { fuelRequest3.responseObject(UserInfoDeserializer) } returns ResponseResultOf(
        first = fuelRequest3,
        second = fuelResponse,
        third = Result.success(true)
    )
    every { fuelRequest4.responseObject(UserInfoDeserializer) } returns ResponseResultOf(
        first = fuelRequest4,
        second = fuelResponse,
        third = Result.success(true)
    )
}

@Test
fun `will return FALSE for user not existing in jira`() {
    // given
    val usernames = listOf("user_1@test.com", "user_3@test.com", "user_4@test.com")

    // when
    val result = JiraService().checkIfUsersExistInJira(usernames, jiraConfig)

    // then
    assertThat(result, equalTo(false))
}

@Test
fun `will return TRUE for users existing in jira`() {
    // given
    val usernames = listOf("user_3@test.com", "user_4@test.com")

    // when
    val result = JiraService().checkIfUsersExistInJira(usernames, jiraConfig)

    // then
    assertThat(result, equalTo(true))
}