Как имитировать функцию в импортированном локальном модуле балерины в модульном тесте

Я создал модуль балерины, как показано ниже, который хранится в моем локальном реестре.

      import wso2/notification_grpc_client as ngc;

В отдельном модуле. В тестовом примере я импортирую другой модуль и пытаюсь имитировать ответ в одном из методов класса в импортированном выше модуле.

      NotificationResponse noti = {code: "OK"};
ngc:NotificationServiceClientImpl clientMock = test:mock(ngc:NotificationServiceClientImpl);
test:prepare(clientMock).when("createApplication").thenReturn(noti);

но когда тестовый пример выполняется, он выполняется без простого возврата ложного ответа.

1 ответ

Вы можете решить эту проблему, добавив функцию для возврата ложного ответа с помощью@test:Mockконфигурации.

      @test:Mock {functionName: "createApplication", moduleName: "wso2/notification_grpc_client"}
public isolated function createApplicationMock(ApplicationGRPC createApplicationRequest, string endpoint) returns error|NotificationResponse {
    NotificationResponse noti = {code: "OK"};
    return noti;
}
Другие вопросы по тегам