Fabric8: Mock Kubernetes Server на самом деле не создает ресурс без набора «ожидание»

Я ожидаю, что аннотация @EnableKubernetesMockClient активирует KubernetesMockServer в режиме CRUD, что означает, что мне не нужно имитировать операции PUT через API. С этим ожиданием я написал следующий код:

@EnableKubernetesMockClient
public class Test {

    KubernetesMockServer server;
    KubernetesClient client;

    @Test
    public void test_create_custom_job() {

        MyJobDetails myJobDetails = new MyJobDetails();
        String jobName = "job1-202211200345-prod";
        myJobDetails.setname("job1-202211200345-prod");
        //Other setters to follow
        ...

        PlatformOperationsService svc = new PlatformOperationsService(client);
        svc.createCustomJob(myJobDetails);

        // Expect no other job to exist
        Job createdJob = client.batch().v1().jobs().list().getItems().get(0);

        assertTrue(jobName.equals(createdJob.getMetadata().getName()));
        // Other asserts will follow to see if all the other inputs were supplied correctly
        ...
        

    }
    
 }

Однако я получаю следующее исключение из строки: Job createdJob = client.batch().v1().jobs().list().getItems().get(0);

Failure executing: POST at: https://localhost:51913/apis/batch/v1/namespaces/test/jobs. Message: Not Found.
io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: POST at: https://localhost:51913/apis/batch/v1/namespaces/test/jobs. Message: Not Found.
    at app//io.fabric8.kubernetes.client.KubernetesClientException.copyAsCause(KubernetesClientException.java:238)
    at app//io.fabric8.kubernetes.client.dsl.internal.OperationSupport.waitForResult(OperationSupport.java:517)
    at app//io.fabric8.kubernetes.client.dsl.internal.OperationSupport.handleResponse(OperationSupport.java:551)
    at app//io.fabric8.kubernetes.client.dsl.internal.OperationSupport.handleResponse(OperationSupport.java:535)
    at app//io.fabric8.kubernetes.client.dsl.internal.OperationSupport.handleCreate(OperationSupport.java:328)
    at app//io.fabric8.kubernetes.client.dsl.internal.BaseOperation.handleCreate(BaseOperation.java:675)
    at app//io.fabric8.kubernetes.client.dsl.internal.BaseOperation.handleCreate(BaseOperation.java:88)
    at app//io.fabric8.kubernetes.client.dsl.internal.CreateOnlyResourceOperation.create(CreateOnlyResourceOperation.java:42)
    at app//io.fabric8.kubernetes.client.dsl.internal.BaseOperation.create(BaseOperation.java:1073)
    at app//io.fabric8.kubernetes.client.dsl.internal.BaseOperation.create(BaseOperation.java:88)

Поэтому я не уверен, правильно ли мое ожидание или мне чего-то не хватает, чтобы заставить эту работу работать. Если мое ожидание неверно, то нет смысла использовать эту среду Mock для моего использования, поскольку я не хочу имитировать и тестировать один и тот же набор объектов в одном и том же методе тестирования. Любая помощь высоко ценится!

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я ожидаю, что аннотация @EnableKubernetesMockClient активирует KubernetesMockServer в режиме CRUD.

Это не. К аннотации есть дополнительный параметр — @EnableKubernetesMockClient(crud = true)

Это действительно сработало. Было бы полезно, если бы была документация, которой я мог бы следовать.

Anish Nagaraj 21.11.2022 09:17

Другие вопросы по теме