Planejando: um model, TDD desde a primeira linha
Noventa e seis cursos, uma coisa a construir
Cada um dos noventa e seis cursos júnior antes deste ensinou uma parte. Foram ActiveRecord a fundo, mecânica de controllers, as ferramentas do RSpec, fluxos de Git, revisão de código e IA usada com cuidado. Nenhum deles, sozinho, construiu um app funcionando e todo testado de ponta a ponta. Esse é o trabalho deste projeto final, em sete aulas. Ele constrói um pequeno gerenciador de tarefas, o Task Tracker Pro, com a disciplina que "Cultura de testes: RGR" nomeou: o teste vem primeiro, sempre. É a ordem que cada aula abaixo segue, não uma regra repetida uma vez.
O que este app precisa fazer
Um model, Task, com title, status (pending, doing, done), priority (low, medium, high) e uma data due_on. Quatro ações: listar todas as tarefas, criar uma, marcar uma como feita e ver quais estão atrasadas. É pequeno de propósito. Este projeto final trata do processo de construir direito, não da quantidade de features.
Por que RSpec primeiro, e não estilo primeiro
"Capstone: blog pessoal" é o projeto final do nível estagiário deste catálogo. Ele fechou com uma aula de estilo sobre os tokens Tailwind deste app, uma escolha deliberada para um curso sobre acabamento visual. A descrição deste curso define outra meta: "Construindo um app testado com RSpec e IA". Por isso não há aula de estilo aqui. É uma decisão de escopo alinhada à meta, não um esquecimento.
Red-green-refactor, de onde este catálogo o definiu
"Cultura de testes: RGR" definiu a disciplina que este app segue. O título da segunda aula dele diz a primeira regra: "Red: um teste que nunca falhou nunca provou nada". Toda feature deste app, a partir da próxima aula, ganha um spec escrito e rodado antes de o código que ele testa existir. Você o vê falhar por um motivo específico antes de escrever uma linha de implementação para satisfazê-lo.
A ordem, dita de antemão
A aula 2 escreve o spec de model de Task e o roda, vermelho, contra um model que não existe. A aula 3 escreve a migration, o model e uma factory, a menor mudança que o deixa verde. A aula 4 roda o mesmo ciclo uma camada acima: primeiro um request spec, depois as rotas e o controller. A aula 5 acrescenta um system spec, o Capybara conduzindo um fluxo com cara de navegador, e depois as views que o satisfazem. A aula 6 traz IA para uma feature, checada e revisada com a disciplina de "Code reviews: princípios" em vez de aceita às cegas. A aula 7 roda a suíte inteira verde e fecha a construção. Depois dela, o nível júnior termina com quatro cursos de preparação para entrevistas.
Onde isso deixa você
Você não recebe um app pronto. Você assiste um ser construído, teste primeiro, na ordem em que um engenheiro o construiria com a disciplina que este catálogo ensinou em partes.
Continue com a aula 2
Red: um teste de model pra um model que ainda não existe
Escreve o spec de model da Task e o roda vermelho, falhando com NameError porque nada existe ainda.
Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.