Pergunta

Meu projeto da Web da Spring consiste em:

    .
  1. Util aulas;
  2. repositórios;
  3. serviços;
  4. controladores.

    Os testes são os seguintes:

      .
    1. testes unitários para classes UTIL; Testes de integração de mola
    2. para repositórios com HSQLDB;
    3. testes de unidade para serviços com repositórios simulados;
    4. testes unitários para controladores com serviços simulados.

      também pode ser testes do sistema que testam a funcionalidade geral do projeto. Pode ser realizado com uma ferramenta externa, como selênio ou pode ser realizada usando o teste de integração de mola.

      A questão é, devo incluir tais testes de sistema de integração de primavera em um projeto ou sejam separados de alguma forma?

      Eu vejo dois problemas sobre como incluir testes do sistema em um projeto: 1. Eles precisam de ajuste de configuração porque esses testes não serão executados com a configuração de produção (por exemplo, testes precisam de um DataSource local, não o do JNDI); 2. Eles não são autônomos, precisam de alguns recursos externos e assim por diante. Eu não posso apenas executá-los como testes de unidade habituais.

      Como você organiza o teste do sistema?

Foi útil?

Solução

Em pequenos projetos que os mantive no mesmo lugar. Em grandes projetos corporativos (o tipo para o qual você pode aproveitar útil a primavera, por exemplo), geralmente organizamos testes do sistema em um pacote / projeto separado. Isso ajuda a mantê-los separados da faixa principal do Código.

Se você não fizer isso, há todos os tipos de tentação para reutilizar as aulas do código para "ajudar" em algo que deve ser mais fortemente focado na experiência dos usuários do sistema (um usuário pode ser outro sistema ). Se isso acontecer, você acaba com o acoplamento entre as classes de domínio do projeto e a interface do usuário, que terá o efeito inevitável de necessidade de duplicar grande parte da lógica que ajuda a mantê-los desacoplados na faixa de código real.

Na maioria das vezes, a lógica em cenários de sistema será realmente focada em páginas, telas, chamadas da web, etc. Portanto, o código de reutilização do projeto principal é um arenque vermelho. Mantenha os pacotes separados para evitar isso acontecer, e porque uma vez que você evita isso acontecendo, não há necessidade de tê-los no mesmo lugar.

No entanto, certifique-se de que os testes do sistema são verificados no mesmo controle de versão que o código.

Se você não estiver fazendo integração contínua e teste / implantação ainda, essa pode ser outra área para a qual algum aprendizado irá ajudá-lo com os arquivos de configuração. Esse problema não vai embora só porque você tem testes em um projeto separado, infelizmente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top