Como testar alterações de configuração em um serviço?


9

Qual é a melhor abordagem para testar um serviço quando você adiciona uma nova configuração? Por exemplo, meu serviço oferece um serviço a um cliente e, com base na configuração do cliente, ele oferece um tipo diferente de serviço. Por exemplo, se o cliente selecionar uma moeda específica, ele receberá um desconto de 20% em comparação com outra moeda.

O exemplo acima não importa. O que importa é a abordagem adotada pelas pessoas ao fazer CI \ CD

A lógica para calcular o desconto está no domínio e possui testes de unidade em torno dele. Minha pergunta é: se você possui comerciantes configurados com regras diferentes para descobrir o desconto (todos baseados na configuração e o domínio funciona), se uma solicitação é solicitada para alterar a configuração, como você o verifica?

  1. Você escreve mais testes?
  2. Você não testa como já em testes de unidade?
  3. Testar alterações manualmente?
  4. De outros

Li os livros xUnit Test Patterns e Test-Driven Development, juntamente com muitos artigos, mas não lembrei de como as pessoas gerenciam isso (as alterações de configuração no serviço e a verificação da correção).

Também não vejo isso abordado no livro de entregas contínuas.

Respostas:


1

Sua lógica de negócios já foi testada por testes de unidade. Você pode testá-lo com diferentes parâmetros de configuração facilmente? Caso contrário, você deve separar os dois:

Configuração <- App -> Lógica comercial

Aqui, por exemplo, seu aplicativo cuida da leitura da configuração e chama a lógica de negócios com parâmetros. Teste de unidade fácil desta maneira.

Nos testes de integração, você testa se todo o sistema funciona em conjunto, não a lógica de negócios.


0

Crie um novo teste de integração que tenha as condições necessárias e um resultado testável.

Uma parte da configuração do teste deve ser a configuração da moeda na qual você pode definir a moeda e, assim, testar descontos específicos.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.