io.mockk.MockKException: не найден ответ для: BudgetsInner (# 46) .delete (Team) - PullRequest
0 голосов
/ 11 марта 2020

ниже актуальный код

     override fun deleteBudget(serverWebExchange: ServerWebExchange): Mono<Boolean> {
           logger.info("inside delete")
             return serverWebExchange.formData.map { formData ->
                 val environment =
  objectMapper.readValue(formData.keys.iterator().next(), object : 
 TypeReference<String>() {})

                 val budgetName = getEnvironmentBudgetName(environment)
                 logger.info("Deleting Azure Budget $budgetName from account")
                 val retrofit = azureClientImpl.retrofit()
                 val budgetsInner = BudgetsInner(retrofit, azureClientImpl)
                 budgetsInner.delete(budgetName) //here i am getting exception
                 logger.info("Delete budget $budgetName successful")
                 refreshBudgets = true
                 true
             }
         }

ниже код теста

     @Test
         fun deleteBudgetSuccessful() {
             val retrofit = mockk<Retrofit>()
             every { azureBudgetRepo.getBudgetDetails() } returns azureObj.value
             val requestJson = objectMapper.writeValueAsString("Budget_name")
             val mockHttpRequest = MockServerHttpRequest.put("/")
                     .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED_VALUE)
                     .body(requestJson)
             val exchange = MockServerWebExchange.builder(mockHttpRequest).build()
             every { azureClientImpl.retrofit() } returns retrofit
           val result = costService.deleteBudget(exchange).block()
           /*StepVerifier.create(result)
             .expectNext(true)
             .expectComplete()
             .verify()*/
             Assertions.assertNotNull(result)
         }

когда я запускаю этот тестовый пример, получаю io.mockk.MockKException: не найден ответ для: исключение BudgetsInner (# 46) .delete (Team), потому что при выполнении теста вызывается budgettsInner.delete (budgetName ) но этот тип возвращаемого метода равен void , поскольку это пустое покрытие кода типа возвращаемого значения и тестовый случай не пройден.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...