Pergunta

Estou aprendendo Rails a maneira velhice. Ao ler Agile Web Development with Rails (3rd Edition) como um ponto de partida. Atualmente, estou no capítulo que ensina Testing. Também estou ciente de outra estrutura BDD Testing tais como RSpec. Então eu queria saber se quadros como o RSpec, pepino, Shoulda substituir a necessidade de saber / usando Test :: Unit? ambos são relevantes em seu próprio direito e utilizado para fins diferentes?

UPDATE: Desde que eu sou novo para testes, eu também gosto de obter feedback sobre quais recursos são úteis para colocar meus pés molhados com estruturas diferentes

.

Obrigado!

Foi útil?

Solução

O mundo mudou! Verifique para baixo e upvote @prusswan

Eu acho que Test :: Unit é ainda relevante, embora haja um monte de hype em torno BDD e outras ferramentas de teste.

Dito isto, se você for para ele, você pode ignorar a aprendizagem Test :: Unit e começar com algo como RSpec e Shoulda imediatamente, mas há algo a ser dito sobre o seguinte através dos exemplos na Web Development Agile livro para ver onde as idéias de BDD veio.

Encontro-me ainda usando Test :: Unit para alguns projectos, uma vez que vem com Rails e ainda é uma grande estrutura de teste.

Então, longa história curta, eu não acho que é obsoleto, mas não é a vanguarda mais. BDD é uma mudança de paradigma de testes especialmente se você começar a usar pepino e Webrat, mas é fantástico, uma vez que você se acostuma. Shoulda é o mais fácil de fazer a transição para, então eu começaria com Test :: Unit, em seguida, passar para Shoulda, em seguida, dar RSpec e Cucumber uma tentativa.

Você está testando ou pelo menos interessado em testar! Essa é a melhor parte. No final, não importa o que você usar, contanto que você está feliz com ele.

Boa sorte!

Outras dicas

Apenas pensei que eu ia postar uma atualização a partir de 2012:

Fora do três principal e atual (utilizável com Rails 3.2 com não mais do que algumas pequenas modificações) livros introdutórios sobre RoR, dois deles estão usando Rspec (com, no máximo, uma pequena menção para Test :: Unit) e um deles está planejando até mesmo moar Rspec para o próxima edição , por isso é claro quem seria o vencedor desta "batalha" por agora

E me permita seletivamente Citação dhh:

O importante é claro que nós levar as pessoas a testar, então ferramentas não deve importar muito.

Revisit em 2014:

Minitest tem agora substituído Test :: Unit como um padrão nas versões atuais do Rails. Pessoalmente, sinto que merece um olhar mais atento em relação ao seu antecessor para uma série de razões -

  1. O seu estatuto como um padrão
  2. Melhor suporte para capivara e selênio, uma grande parte devido a pedras preciosas como este
  3. relativamente leve
  4. Na maior parte compatível com Test :: Unit

Rspec é um framework de testes totalmente separado. Shoulda é um aprimoramento das Rails built-in quadro, Test :: Unit. Se você estiver usando Shoulda, você está usando Test :: Unit, mas com mais capacidades e mais simples de sintaxe, mais legível.

Eu tentei Rspec e Shoulda e para mim, Shoulda ganha mãos para baixo. Eu gosto muito melhor. Mas isso pode ser uma questão de gosto.

Note que você pode usar pepino com Shoulda .

Outros recursos? Eu recomendo as gemas ZenTest e RedGreen. ZenTest fornece autoteste, que permite executar os testes automaticamente cada vez que você alterar um arquivo. É uma grande ajuda.

Em relação luminárias vs. fábricas, se você precisa configurar um monte de objetos inter-relacionados onde você está testando ambos os lados ou uma relação pai-filho e / ou testar muitos-para-muitos relacionamentos, luminárias funcionam muito melhor. Na verdade eu nem tenho certeza que você pode fazer isso com fábricas. Portanto, não descartar equipamentos -. Eles têm seus usos

Há um monte de pessoas que ainda gostam de Test :: Unit, e em certa medida, é uma preferência pessoal. No entanto, em equilíbrio, você vai encontrar muito mais atividade na parte da frente RSpec. O material realmente legal está tudo sendo feito com RSpec e Cucumber, por isso, se você não tem uma preferência pessoal mesmo, eu provavelmente iria pular Test :: Unit. Você deve, entretanto, ser suficiente familiarizado com ele para ler testes de outra pessoa que são escritas com ele, mas eu não iria prever que nunca ser um problema.

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