Diferenças entre Teste e Especificação

12

Estou com um problema de conceito neste momento e não consigo encontrar nenhuma informação sobre as diferenças entre Test (UnitTest, etc) e Spec (Rspec, etc).

Tanto quanto eu sei, as especificações estão nos testes de integração e o teste está no UnitTest, mas apenas isso.

Você pode explicar quais são as diferenças?

DFOXpro
fonte

Respostas:

12

Veja o diagrama a seguir. Ilustra a relação entre o Desenvolvimento Orientado a Testes (TDD) e o Desenvolvimento Orientado a Testes de Aceitação (ATDD):

Diagrama de desenvolvimento orientado a testes de aceitação

Observe que o loop interno, TDD, é envolvido pelo loop externo, ATDD. Os requisitos (ilustrados na caixa Critérios de aceitação) direcionam a criação de testes de aceitação automatizados, que, por sua vez, direcionam a criação de testes de unidade para implementação.

Em geral, o RSpec seria usado nas situações em que você deseja expressar os testes de maneira amigável para o analista de negócios, a saber, a criação de testes de aceitação automatizados (o círculo tan); enquanto as estruturas de teste de unidade como o nUnit são mais especializadas para o tipo de testes de unidade escritos da perspectiva do TDD do desenvolvedor no nível de implementação (o círculo amarelo).

Robert Harvey
fonte
Um bom exemplo é uma tabela de hash, isso exige testes de unidade detalhados, pois espera-se que funcione para todas as entradas possíveis, não apenas para o pequeno conjunto de exemplos nos testes de aceitação. No entanto, o código que calcula o desconto para um cliente “bom” provavelmente será coberto pelos testes de aceitação; portanto, pode ser necessário nenhum ou poucos testes de unidade.
31416 Ian
3

ok, temos alguns termos diferentes aqui, então aqui está o que está acontecendo

  • Temos testes de unidade. Outros níveis são testes de integração, testes de desempenho, etc.
  • O rspec pode ser usado para muitos dos níveis de teste acima, por exemplo, contra modelos, controladores e visualizações através dos testes de recursos do Capybara.
  • a palavra 'especificação' vem da especificação que está no centro de um teste - ela especifica algo.
  • rspec - uma estrutura usada para testar navegadores agaist, freqüentemente usados ​​com aplicativos Ruby on Rails.
  • arquivos de especificação - o arquivo rspec geralmente termina em _spec.rb e é freqüentemente chamado de arquivo de especificação.
Michael Durrant
fonte