Precisa de explicação da arquitetura hexagonal

8

Estou lendo sobre a arquitetura hexagonal de Alistair Cockburn com interesse.

Uma afirmação que ele faz é:

Por fim, os testes automatizados de regressão de função detectam qualquer violação da promessa de manter a lógica de negócios fora da camada de apresentação. A organização pode detectar e corrigir o vazamento lógico.

Eu não entendo esse ponto. Ele está dizendo que, como o teste é decapitado, as chamadas para uma camada da interface do usuário lançam exceções? Isso não parece ser um teste muito bom!

Victor Grazi
fonte

Respostas:

14

Seu argumento é que ter um conjunto de testes automatizados exercitando toda a lógica de negócios sem uma interface do usuário deixará claro se você tem alguma lógica de negócios na interface do usuário.

Para fazer esse conjunto de testes, você precisa essencialmente criar uma interface "não-usuário" muito simples para testes, para fornecer dados e verificar os resultados. Se alguma lógica da sua empresa estiver na interface do usuário, você se replicará nessa interface de teste e perceberá seu erro.

Don Roby
fonte
Eu meio que vejo. Mas o que acontece se o desenvolvedor aumentar a API publicada, introduzindo a lógica de negócios na camada de apresentação? Isso não seria pego, correto?
Victor Grazi
1
Nada protegerá de um desenvolvedor desonesto, adicionando coisas que não pertencem sem testes.
quer
Portanto, o padrão protege contra alguém que seja estúpido o suficiente para mover a lógica de negócios para a camada de apresentação, mas não contra alguém que seja tão estúpido que introduziria novas APIs de negócios em seu código de apresentação.
Victor Grazi
"você se encontrará replicando essa lógica nessa interface de teste" ou pode escrever seus testes para usar a lógica da interface do usuário, certo?
Daniel Kaplan