Pergunta

Quando devo usar óculos para aplicação Rails e quando pepino (ex-rspec-histórias)? Eu sei como trabalhar e ativamente usar óculos, é claro. Mas ele ainda se sente estranho para usar pepino. Minha visão atual sobre isso, é que é conveniente usar pepino quando você está implementando aplicativos para o cliente e não entendo como todo o sistema é suposto para trabalhar ainda.

Mas o que se eu estou fazendo o meu próprio projeto? Para a maior parte do tempo, eu sei como as partes do sistema interagem. Todos necessidade I a fazer é escrever um monte de unidade-testes. Quais são as possíveis situações em que eu precisaria Pepino então?

E, como uma segunda pergunta correspondente: eu tenho que specs escrever, se eu escrever histórias de pepino? Não seria duplo teste da mesma coisa?

Foi útil?

Solução

Se você não tiver, você pode querer verificar o excelente artigo de Dan Norte, O que está em uma história? como um ponto de partida.

Nós temos dois usos principais para histórias de pepino. Primeiro, porque a forma de história é muito específico que ajuda a focalizar a articulação do proprietário do produto das características que ele quer construído. Este é o "token para uma conversa" uso de histórias, e seria valioso ou não implementamos as histórias em código. Em segundo lugar, quando o processo está funcionando bem o suficiente para que nós temos histórias completas antes que começar a escrever o recurso (mais de um ideal que nós nos esforçamos para que uma realidade diária), você tem seus critérios de aceitação enunciado claramente e você sabe exatamente o que e quanto a construir.

Em nosso trabalho Rails, histórias de pepino não substituem testes de unidade rspec. Os dois vão de mãos dadas. Na prática, os testes unitários tendem a impulsionar o desenvolvimento dos modelos e controladores, e as histórias tendem a impulsionar o desenvolvimento dos pontos de vista (que tendem a não escrever rspec para os nossos pontos de vista) e fornecer um bom teste para o aplicativo como um todo a partir do na óptica do utilizador.

Se você está trabalhando solo, o aspecto da comunicação pode não ser tão interessante para você, mas a integração testando você começa a partir de pepino pode ser. Se você tirar proveito de webrat , escrevendo pepino pode ser rápido e indolor para um monte de seu funcionalidade básica.

Outras dicas

Pense nisso como um ciclo:

Escreva seu recurso Pepino, em seguida, ao desenvolver as peças para esse recurso, especificações escrita para completar os componentes individuais. Continue a preencher especificações até que você tenha escrito funcionalidade suficiente para o recurso a passar, em seguida, escrever o seu próximo filme.

A minha opinião é que não é uma má idéia para usar pepino na maioria das situações, devido aos custos de produtividade seus incorre sintaxe em você. I escreveu extensivamente sobre o tema em Por que se preocupar com pepino testes?

Um pepino história é mais uma descrição do problema geral a sua aplicação é resolver, ao invés de se os bits individuais de código de trabalho (ou seja, testes de unidade).

Como Abie descreve, é quase uma lista de requisitos que o aplicativo deve atender, e é muito útil para a comunicação com o cliente, bem como sendo diretamente testáveis.

Hoje em dia você pode usar rspec com Capivara e selênio Webdriver e evitar ter que construir e manter todos os analisadores história pepino. Aqui está o que eu recomendo:

  1. Escreva a sua história
  2. Usando RSpec, eu iria criar um teste de integração ex: spec / integrações / socks_rspec.rb
  3. Em seguida, eu iria criar um teste de integração que inclui um novo descrever e bloquear para cada cenário
  4. Então eu iria implementar a funcionalidade mínima precisa para obter o teste de integração e enquanto voltando mais profunda (em controladores e modelos, etc) Gostaria de TDD em controladores e modelos.
  5. Como você voltar para cima seu teste de integração deve passar e você pode continuar a adicionar passos para o teste de integração
  6. repeat

Uma coisa a notar, no entanto, é que os testes de controlador e integração têm sobreposição que pode não ser necessário que você tem que usar o bom senso para que você não perca seu tempo.

Além disso, uma vez que você encontrar o seu groove você vai encontrá-lo mais agradável para desenvolver usando BDD, até então não se sinta culpado se você não sentir como você está fazendo isso aperfeiçoar e não mais pensar nisso. Você vai fazer muito bem!

Mas o que se eu estou fazendo o meu próprio projeto? Para a maior parte do tempo, eu sei como as partes do sistema interagem. Todos necessidade I a fazer é escrever um monte de unidade-testes. Quais são as possíveis situações em que eu precisaria Pepino então?

Você ainda precisa de pepino. Você precisará dele para documento como você vê o funcionamento do sistema, e você precisa-lo para fazer a funcionalidade certeza você não tenha quebrado quando você mudar as coisas.

Em outras palavras, você precisa de histórias de pepino para as mesmas razões que você precisa testes de unidade - eles apenas trabalhar em um nível maior de abstração

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