:: Topo :: doCoding :: Projectos Tutoriais :: Tutoriais RubyOnRails ::

RubyOnRailsBlogTDD

Referências

Tutorial

Seguir o Ritmo TDD:

  1. Criar um UnitTest - antes do código propriamente dito (“solução ao problema”) é preciso codificar o teste que validará essa solução. O âmbito do problema, requisitos e especificações tem que estar fechado.
  2. Executar o UnitTest - este teste deve falhar (red) antes do código da solução ser escrito.
  3. Codificar a Solução - escrever o código seguindo as boas práticas DRY (Dont Repeat Yourself), YAGNI (You Ain't Gonna Need It) e KISS (Keep It Simple and Straight). Ou seja, deve-se escrever somente o mínimo necessário para o UnitTest passar.
  4. Executar o UnitTest - este teste deve passar (green) após o código da solução estar pronto. Podem ser necessárias várias iterações sobre o código da solução, mas a final será sempre green.
  5. Code Refactoring - aproveitar para limpar o código, melhorar a legibilidade do mesmo e retirar código em excesso ou “ruído”. Podem ser necessárias várias iterações sobre o código da solução, mas a final manterá sempre o estado green.
  6. Passar ao próximo UnitTest - que deverá falhar (red).

Por isso se usa normalmente o termo “red-green-red”.

Tal como referido no artigo, existem vários tipos diferentes de testes no Rails:

  1. testes unitários - que são responsáveis pelos testes de modelos;
  2. testes funcionais, responsáveis por testar os controllers;
  3. testes de integração, responsáveis por testar múltiplas camadas da aplicação e a interligação entre elas.

Entendo o conceito, mas falta vê-lo aplicada na prática e em particular com código que envolva interacção com o utilizador. Neste caso, com o Rails, até que ponto será a metodologia TDD adequada sobre MVC?

Quickstart

First Steps

rails RubyOnRailsBlogTDD --svn --database=sqlite3
cd RubyOnRailsBlogTDD
svn commit -m "Initial RubyOnRailsBlogTDD Project revision."
piston import http://mydev/svn/doCoding/RubyOnRails/vendors/plugins/custom_rake_tasks vendor/plugins/custom_rake_tasks
rake svn:init
rake db:config DB=RubyOnRailsBlogTDD ADAPTER=sqlite3 FORCE=true
svn commit -m "Configure DataBase for RubyOnRailsBlogTDD Project."

Server

Numa outra sessão/terminal, para manter o serviço a correr durante o desenvolvimento, é preciso lançar o WEBrick:

Launch WEBrick Server

cd /srv/prj/doCoding/TutorialProjects/RubyOnRails/projects/RubyOnRailsBlogTDD
script/server
No Windows nativo é preciso indicar qual o interpretador, explicitamente:

Launch WEBrick Server

ruby script/server

Pelo que pode-se então aceder a http://localhost:3000 através de um browser:
 Welcome Aboard

Iterações

Considerações

A versão 2.0.2 do Rails com o Cygwin dá o seguinte erro quando se tenta criar uma nova aplicação: No such file or directory - /dev/urandom. A mesma versão 2.0.2 em Windows corre sem problemas, com o mesmo comando de criação:

Criar Aplicação

rails RubyOnRailsBlogTDD --svn --database=sqlite3

O Geany não se tem revelado suficientemente bom para ser usado no Windows. Tenho problemas de copy & paste e não é possível executar o código dentro do IDE. Torna-se assim, por enquanto, mais um Editor de Texto do que um IDE. E para isso é melhor o NotePad++ ou outros equivalentes. Se precisar de um IDE terei que recorrer ao Eclipse ou ao NetBeans.

Grande mérito do Nando Vieira na elaboração - à prova de bala - deste tutorial. Muito bom.

ToDo

  1. Fix Rails Error: Unable to access log file.
    Please ensure that /srv/prj/doCoding/TutorialProjects/RubyOnRails/projects/RubyOnRailsBlogTDD/log/development.log exists and is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.
 
docoding/tutorialprojects/rubyonrailsblogtdd.txt · Modificado em: 2008/01/28 23:25 (Edição externa)     Voltar ao topo