# Mock de Conectores

O Mock de Conectores permite criar e simular diferentes respostas aos conectores enquanto você desenvolve o fluxo de integração. Essa abordagem simplifica o processo de testes, pois permite criar e testar toda a lógica do fluxo sem a necessidade de configurar os conectores para acessar aplicações externas ou fazer chamadas reais de API, por exemplo.

## **Como criar uma mock response**

### **Usando o formulário do conector**

#### **Criando a mock response**

<figure><img src="https://content.gitbook.com/content/cO0A6g1dOsu8BiHYqO67/blobs/Yb8iKyJHpMrphPQc3lR8/Criar%20mock.gif" alt=""><figcaption></figcaption></figure>

Para criar uma mock response:

1. Abra o conector para o qual deseja criar a mock response.
2. Na opção **Criar Mock Response**, clique em **Novo**.
3. Insira a response no campo **JSON Body**.
4. Insira um **Nome** para a response.
5. Clique em **Adicionar**.

A response será salva em uma lista. Você pode adicionar quantas mock responses desejar, repetindo o mesmo processo.

Para retornar à configuração do conector, clique em **Voltar para Configurações**.

#### **Editando a mock response**

<figure><img src="https://content.gitbook.com/content/cO0A6g1dOsu8BiHYqO67/blobs/Z1aShtM4wy6HYYcs709N/Editar%20mock.gif" alt=""><figcaption></figcaption></figure>

Para editar uma mock response:

1. Abra o conector que possui uma mock response cadastrada.
2. Em **Mock Response**, clique no ícone de **lápis**.
3. Encontre a mock response que deseja alterar e clique em **Editar**.
4. Faça as alterações desejadas no **JSON Body** ou no **Nome**.
5. Clique em **Salvar** para aplicar as alterações ou em **Cancelar** para descartá-las.

#### **Ativando a mock response**

<figure><img src="https://content.gitbook.com/content/cO0A6g1dOsu8BiHYqO67/blobs/L2T2DyAwAmvwoUBA1Iw2/Ativar%20response.gif" alt=""><figcaption></figcaption></figure>

Para aplicar a mock response ao conector, você deve ativá-la. Existem duas maneiras de fazer isso:

* Ative o botão **Mock Response** no formulário de configuração do conector e selecione a mock response desejada no menu suspenso.
* Ative a mock response que deseja usar na área de edição das **Mock Responses**. Apenas uma mock response pode ser ativada por conector.

A mock response será aplicada ao conector somente após você salvar o formulário de configuração.

### **Usando a mensagem de saída de um conector**

Além de criar uma mock response manualmente no formulário de configuração do conector, você também pode gerá-la diretamente a partir da mensagem de saída do conector, tornando o fluxo de trabalho mais eficiente.

Para criar uma mock response a partir da saída de um conector:

1. Execute o fluxo.
2. Acesse a aba **Mensagens** no [**Painel de Execução**](https://docs.digibee.com/documentation/developer-guide/pt-br/development-cycle/build-overview/canvas/execution-panel).
3. Selecione a saída do conector que deseja usar como mock response.

{% hint style="info" %}
Alguns conectores não geram mensagens que podem ser usadas como mock response. Isso se aplica aos seguintes conectores: [**Choice**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/logic/choice), [**Do While**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/logic/do-while), [**Retry**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/logic/retry), [**Block Execution**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/logic/block-execution), [**Parallel Execution**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/logic/parallel-execution), [**Log**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/tools/log), [**JSON Generator**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/tools/json-generator) e [**Throw Error**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/tools/throw-error).
{% endhint %}

4. Clique em **Criar mock response**.
5. Na caixa de diálogo que aparece, insira um nome para a mock response.
6. Para ativá-la imediatamente no conector, habilite a opção **Ativar mock response do conector**. Caso contrário, a mock response será salva desativada e precisará ser ativada manualmente no formulário de configuração do conector.
7. Clique em **Salvar**.

<figure><img src="https://content.gitbook.com/content/cO0A6g1dOsu8BiHYqO67/blobs/gxjrUJzmiiOxQOelIufn/Mock%20Response%20da%20sa%C3%ADda%20de%20um%20conector.gif" alt=""><figcaption></figcaption></figure>

## Exemplos práticos de uso do Mock de Conectores

O Mock de Conectores é uma ferramenta poderosa que ajuda você a desenvolver sua lógica de integração. Aqui estão alguns exemplos de como você pode usar essa funcionalidade:

#### **Cenário 1: Construindo a lógica do fluxo com mock responses**

Enquanto constrói um fluxo, você pode precisar fazer uma chamada REST para um serviço que gera custos em cada requisição. Para evitar esses custos durante o desenvolvimento, você pode configurar uma mock response em um conector [**REST**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/web-protocols/rest-v2). Isso permite que você continue desenvolvendo e testando o fluxo sem preocupações.

#### **Cenário 2: Testando com vários cenários de response**

Ao testar a lógica do pipeline, pode ser necessário gerenciar diferentes responses de um conector [**DB**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/structured-data/db-v2). As mock responses permitem que você simule e selecione diferentes responses para realizar testes mais abrangentes.

#### **Cenário 3: Atualizando a lógica de integração com mock responses**

Se precisar ajustar a lógica de negócio de uma integração, você pode simplificar esse processo ativando as mock responses de conectores que fazem chamadas para sistemas externos. Isso permite que você teste mudanças no fluxo de integração sem realizar chamadas reais para sistemas externos.

## FAQs

<details>

<summary><strong>Quais conectores suportam mock responses?</strong></summary>

Você pode criar mock responses em qualquer conector da Digibee Integration Platform, exceto nos conectores [**Log**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/tools/log), [**Choice**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/logic/choice) e [**Parallel Execution**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/logic/parallel-execution).

</details>

<details>

<summary><strong>Como posso saber se um conector tem mock responses ativas?</strong></summary>

Conectores com mock responses ativas são indicados pelo símbolo **M**.

</details>

<details>

<summary><strong>Os mock responses afetam pipelines implantados?</strong></summary>

Não, os mock responses são ignorados em runtime. Quando você implanta um pipeline, apenas valores reais são utilizados, portanto, não é necessário desativar os mock responses manualmente.

</details>

<details>

<summary><strong>Os mock responses são compartilhados entre conectores?</strong></summary>

Não, os mock responses são salvos dentro de cada conector. Por exemplo, se você configurar mock responses em um conector [**REST**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/web-protocols/rest-v2) e adicionar um novo conector **REST** ao fluxo, o novo conector não exibirá os mock responses existentes. O mesmo se aplica se copiar e colar o conector — as informações de mock não serão incluídas.

</details>

<details>

<summary><strong>O que é incluído no arquivo exportado no Painel de Execução quando um pipeline é executado com mock responses?</strong></summary>

O [arquivo exportado](https://docs.digibee.com/documentation/developer-guide/pt-br/development-cycle/build-overview/execution-panel#exportar-e-importar) contém o nome e o conteúdo de cada mock response utilizado, em vez de valores reais.

</details>

<details>

<summary><strong>Os mock responses são incluídos quando um fluxo é copiado para outro Canvas?</strong></summary>

Não, quando você copia e cola um fluxo em outro Canvas, os mock responses não são transferidos.

</details>

<details>

<summary><strong>Posso criar mock responses em pipelines e cápsulas?</strong></summary>

Sim, as mock responses estão disponíveis em pipelines e cápsulas.

</details>
