<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ricardo Viana&#039;s blog &#187; ruby</title>
	<atom:link href="http://ricardo.zn.inf.br/tag/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://ricardo.zn.inf.br</link>
	<description>tecnologia, games, programação, web e o que mais vier à cabeça</description>
	<lastBuildDate>Thu, 26 Jan 2012 17:37:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Tutorial: começando com cucumber</title>
		<link>http://ricardo.zn.inf.br/2011/02/06/tutorial-comecando-com-cucumber/</link>
		<comments>http://ricardo.zn.inf.br/2011/02/06/tutorial-comecando-com-cucumber/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 02:36:38 +0000</pubDate>
		<dc:creator>ricardo</dc:creator>
				<category><![CDATA[bdd]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[picos]]></category>
		<category><![CDATA[qualidade de software 2011.0]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ufpi]]></category>
		<category><![CDATA[2011.0]]></category>
		<category><![CDATA[qualidade de software]]></category>
		<category><![CDATA[rails tutorial]]></category>

		<guid isPermaLink="false">http://ricardo.zn.inf.br/?p=799</guid>
		<description><![CDATA[Antes de começarmos, efetuaremos uma pequena correção na biblioteca webrat. Correção essa que faltava para que o projeto funcionasse completamente em sala de aula. Baixem o arquivo a seguir http://dl.dropbox.com/u/75418/session.rb E coloquem na pasta: C:\Ruby187\lib\ruby\gems\1.8\gems\webrat-0.7.3\lib\webrat\core por cima do arquivo existente. Com tudo instalado e pronto vamos começar a pensar em BDD (desenvolvimento guiado por comportamento). [...]]]></description>
			<content:encoded><![CDATA[<p>Antes de começarmos, efetuaremos uma pequena correção na biblioteca webrat. Correção essa que faltava para que o projeto funcionasse completamente em sala de aula. Baixem o arquivo a seguir</p>
<p><a href="http://dl.dropbox.com/u/75418/session.rb">http://dl.dropbox.com/u/75418/session.rb</a></p>
<p>E coloquem na pasta: C:\Ruby187\lib\ruby\gems\1.8\gems\webrat-0.7.3\lib\webrat\core<br />
por cima do arquivo existente.</p>
<p>Com tudo instalado e pronto vamos começar a pensar em BDD (desenvolvimento guiado por comportamento). Vamos criar um projeto para efetuarmos os testes:</p>
<pre  class="brush:ruby">
rails new trabalho
</pre>
<p>Lembrando as idéias de BDD, criamos primeiro os testes, depois o códigos que resolvam aqueles testes, só depois refatoramos, ou seja, alteramos o código para, efetivamente, funcionar da maneira prevista nos requisitos.</p>
<p>Primeiramente configuramos nossa aplicação para usar o cucumber. Abrimos o arquivos Gemfile na pasta raiz do nosso projeto e, no final do arquivo, adicionaremos as seguintes linhas:</p>
<pre  class="brush:ruby">
group :development, :test do
  gem 'cucumber'
  gem 'cucumber-rails'
  gem 'webrat'
end
</pre>
<p>Após isso iremos gerar os arquivos básicos para funcionamento do cucumber, com o seguinte comando, dentro da pasta do projeto (cd trabalho):</p>
<pre  class="brush:ruby">
rails generate cucumber:install pt-BR
</pre>
<p>O parâmetro pt-BR serve para que os arquivos possam ser feitos em português do Brasil.</p>
<pre  class="brush:bash">
ricardo@linuxmint ~/trabalho $ rails generate cucumber:install pt-BR
      create  config/cucumber.yml
      create  script/cucumber
       chmod  script/cucumber
      create  features/step_definitions
      create  features/step_definitions/web_steps.rb
      create  features/step_definitions/web_steps_pt-BR.rb
      create  features/support
      create  features/support/paths.rb
      create  features/support/env.rb
       exist  lib/tasks
      create  lib/tasks/cucumber.rake
        gsub  config/database.yml
        gsub  config/database.yml
       force  config/database.yml
</pre>
<p>Antes de criar nossos testes, vamos fazer uma pequena correção em um arquivo de configuração que foi gerado. Na pasta features/support, abrimos o arquivo env.rb. Iremos alterar a linha 19, trocando o conteúdo:</p>
<pre  class="brush:ruby">
  config.mode = :rails
</pre>
<p>por:</p>
<pre  class="brush:ruby">
  config.mode = :rack
</pre>
<p>Feito isso, vamos criar nosso primeiro arquivo de história de usuário: na pasta features vamos criar um arquivo chamado pessoas.feature (.feature é a extensão padrão do cucumber para histórias de usuário). Digitaremos nele o seguinte conteúdo:</p>
<pre  class="brush:ruby">
# language: pt
Funcionalidade: Gerenciamento de pessoas
  Para efetuar o gerenciamento de pessoas
  Como um usuário cadastrado
  Eu quero cadastrar, alterar e excluir pessoas no sistema

  Cenário: Cadastro de Pessoas
    Dado que eu esteja no cadastro de pessoas
    Quando eu preencho "nome" com "Ricardo"
    E eu preencho "idade" com "24"
    E eu preencho "peso" com "88.5"
    E eu aperto "Cadastrar"
    Então eu devo ver "Pessoa cadastrado com sucesso"
    E eu devo ver "Nome: Ricardo"
    E eu devo ver "Idade: 24"
    E eu devo ver "Peso: 88.5"
    E eu devo ver "Cadastrar nova pessoa"
</pre>
<p>Com nossa história de usuário pronta, podemos executar o teste. Como não existe código ainda, os testes irão falhar. Para executar os testes executamos o comando:</p>
<pre  class="brush:ruby">
rake cucumber
</pre>
<p>O primeiro erro que acontece é:</p>
<pre  class="brush:ruby">
ricardo@linuxmint ~/trabalho $ rake cucumber
(in /home/ricardo/trabalho)
rake aborted!
Unknown database 'trabalho_development'
</pre>
<p>Isso significa que devemos criar o banco de dados, com o comando:</p>
<pre  class="brush:ruby">
rake db:create:all
</pre>
<p>rodamos o comando rake:cucumber novamente e obtemos o erro a seguir:</p>
<pre  class="brush:ruby">
ricardo@linuxmint ~/trabalho $ rake cucumber
(in /home/ricardo/trabalho)
/home/ricardo/trabalho/db/schema.rb doesn't exist yet. Run "rake db:migrate" to create it then try again. If you do not intend to use a database, you should instead alter /home/ricardo/trabalho/config/application.rb to limit the frameworks that will be loaded
</pre>
<p>Significa que devemos migrar para o banco de dados, com o seguinte comando:</p>
<pre  class="brush:ruby">
rake db:migrate
</pre>
<p>Rodando rake:cucumber novamente, conseguiremos começar a executar os teste. Nesse momento, encontraremos o seguinte erro:</p>
<pre  class="brush:ruby">
ricardo@linuxmint ~/trabalho $ rake cucumber
(in /home/ricardo/trabalho)
bundle exec /usr/bin/ruby1.8 -I "/var/lib/gems/1.8/gems/cucumber-0.10.0/lib:lib" "/var/lib/gems/1.8/gems/cucumber-0.10.0/bin/cucumber"  --profile default
Using the default profile...
U---------

1 scenario (1 undefined)
10 steps (9 skipped, 1 undefined)
0m1.360s

You can implement step definitions for undefined steps with these snippets:

Dado /^que eu esteja no cadastro de pessoas$/ do
  pending # express the regexp above with the code you wish you had
end

rake aborted!
Command failed with status (1): [bundle exec /usr/bin/ruby1.8 -I "/var/lib/...]
</pre>
<p>Esse erro nos diz que devemos criar a regra necessária para executar a primeira linha de nosso primeiro cenário. Para resolver isso devemos criar, na pasta features/step_definitions um arquivo chamado gerenciamento.rb, que conterá essa regra. Nesse arquivo colocamos o código que o cucumber nos trouxe como resultado:</p>
<pre  class="brush:ruby">
Dado /^que eu esteja no cadastro de pessoas$/ do
  pending # express the regexp above with the code you wish you had
end
</pre>
<p>alterando a linha do meio para:</p>
<pre  class="brush:ruby">
Dado /^que eu esteja no cadastro de pessoas$/ do
  visit new_pessoa_path
end
</pre>
<p>Esse comando diz ao cucumber para visitar a página de cadastro de nova pessoa (new_pessoa_path).<br />
Executando novamente rake cucumber, começará a dar erros da lógica da aplicação propriamente dita. O erro desta vez é o seguinte:</p>
<pre  class="brush:ruby">
undefined local variable or method `new_pessoa_path' for #<Cucumber::Rails::World:0x..fdb81b9fa> (NameError)
./features/step_definitions/gerenciamento.rb:2:in `/^que eu esteja no cadastro de pessoas$/'
features/gerenciamento.feature:8:in `Dado que eu esteja no cadastro de pessoas'
</pre>
<p>A causa desse erro é que não existe ainda caminho para o cadastro de pessoas. Para corrigir esse erro vamos ao arquivo config/routes.rb e colocamos o seguinte conteúdo no lugar do que já existe lá:</p>
<pre  class="brush:ruby">
Trabalho::Application.routes.draw do
  resources :pessoas
end
</pre>
<p>Esse código mapeia os caminhos (urls) para a entidade pessoas. Rodando rake cucumber novamente, encontramos o seguinte erro:</p>
<pre  class="brush:ruby">
uninitialized constant PessoasController (ActionController::RoutingError)
./features/step_definitions/gerenciamento.rb:2:in `/^que eu esteja no cadastro de pessoas$/'
features/gerenciamento.feature:8:in `Dado que eu esteja no cadastro de pessoas'
</pre>
<p>Significa que o controlador de pessoas ainda não existe. Vamos criá-lo com o seguinte comando:</p>
<pre  class="brush:ruby">
rails generate controller pessoas
</pre>
<p>Dessa forma geramos o controlador de pessoas e o erro anterior não acontecerá mais. Rodando rake:cucumber, dará o seguinte erro:</p>
<pre  class="brush:ruby">
The action 'new' could not be found for PessoasController (AbstractController::ActionNotFound)
./features/step_definitions/gerenciamento.rb:2:in `/^que eu esteja no cadastro de pessoas$/'
features/gerenciamento.feature:8:in `Dado que eu esteja no cadastro de pessoas'
</pre>
<p>Esse erro significa que não há o método new no controlador pessoas. Então, devemos criá-lo. No arquivo app/controller/pessoas_controller criamos, dentro da classe, o método new:</p>
<pre  class="brush:ruby">
class PessoasController < ApplicationController
  def new
    @pessoa = Pessoa.new
  end
end
</pre>
<p>Fazendo isso e executando rake cucumber, dará o seguinte erro:</p>
<pre  class="brush:ruby">
uninitialized constant PessoasController::Pessoa (NameError)
./app/controllers/pessoas_controller.rb:3:in `new'
./features/step_definitions/gerenciamento.rb:2:in `/^que eu esteja no cadastro de pessoas$/'
features/gerenciamento.feature:8:in `Dado que eu esteja no cadastro de pessoas'
</pre>
<p>Significa que ele não sabe o que é pessoa, ou seja, o modelo pessoa ainda não existe. Nesse momento devemos criá-lo, com o comando:</p>
<pre  class="brush:ruby">
rails generate model pessoa nome:string idade:integer peso:float
</pre>
<p>Após isso faremos a migração para o banco novamente, para que a tabela pessoa seja criada:</p>
<pre  class="brush:ruby">
rake db:migrate
</pre>
<p>Após esses comandos, executamos novamente rake cucumber e verificamos o seguinte erro:</p>
<pre  class="brush:ruby">
Missing template pessoas/new with {:formats=>[:html], :handlers=>[:erb, :builder, :rjs, :rhtml, :rxml], :locale=>[:en, :en]} in view paths "/home/ricardo/trabalho/app/views" (ActionView::MissingTemplate)
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
./features/step_definitions/gerenciamento.rb:2:in `/^que eu esteja no cadastro de pessoas$/'
features/gerenciamento.feature:8:in `Dado que eu esteja no cadastro de pessoas'
</pre>
<p>Esse erro ocorre porque ainda não existe a visão correspondente para o usuário, ou seja, a página com o formulário para preenchimento dos dados de uma pessoa. Devemos criar esse arquivo na pasta app/views/pessoas com o nome new.html.erb e preenchê-lo com o formulário da seguinte forma:</p>
<pre  class="brush:ruby">
<h1>Nova pessoa</h1>

<%= form_for(@pessoa) do |f| %>
<div class="field">
    <%= f.label :nome %>
    <%= f.text_field :nome %>
  </div>
<div class="field">
    <%= f.label :idade %>
    <%= f.text_field :idade %>
  </div>
<div class="field">
    <%= f.label :peso %>
    <%= f.text_field :peso %>
  </div>
<div class="actions">
    <%= f.submit "Cadastrar" %>
  </div>

<% end %>
</pre>
<p>Ao terminar esse passo, o cucumber começará a passar em várias etapas, como indica a primeira linha do código abaixo.</p>
<pre  class="brush:ruby">
....F-----

(::) failed steps (::)

The action 'create' could not be found for PessoasController (AbstractController::ActionNotFound)
./features/step_definitions/web_steps.rb:24:in `/^(?:|I )press "([^"]*)"$/'
features/gerenciamento.feature:12:in `E eu aperto "Cadastrar"'
</pre>
<p>Nesse momento, a execução irá parar no momento de submeter a página, pois, por padrão, o formulário é submetido para a função (action) create, e esta ainda não existe. Dessa forma, devemos criar essa função, logo abaixo da new, da seguinte forma:</p>
<pre  class="brush:ruby">
 def create
    @pessoa = Pessoa.new(params[:pessoa])

    respond_to do |format|
      if @pessoa.save
        format.html { redirect_to(@pessoa, :notice => "Pessoa cadastrado com sucesso") }
      else
        format.html { render :action => "new" }
      end
    end
  end
</pre>
<p>Após pressionar o botão cadastrar, por padrão, o nossa action está redirecionando para a action show, que mostrará os dados da pessoa que acabamos de cadastrar. No entanto, como essa action ainda não existe, nos deparamos com o seguinte erro ao rodar rake cucumber novamente:</p>
<pre  class="brush:ruby">
The action 'show' could not be found for PessoasController (AbstractController::ActionNotFound)
./features/step_definitions/web_steps.rb:24:in `/^(?:|I )press "([^"]*)"$/'
features/gerenciamento.feature:12:in `E eu aperto "Cadastrar"
</pre>
<p>Para consertar esse problema, devemos criar a action show no controlador de pessoas (pessoas_controller) como segue:</p>
<pre  class="brush:ruby">
def show
    @pessoa = Pessoa.find(params[:id])
end
</pre>
<p>Feito isso, rodando rake cucubmer novamente encontramos o seguinte erro:</p>
<pre  class="brush:ruby">

Missing template pessoas/show with {:formats=>[:html], :handlers=>[:erb, :builder, :rjs, :rhtml, :rxml], :locale=>[:en, :en]} in view paths "/home/ricardo/trabalho/app/views" (ActionView::MissingTemplate)
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
./features/step_definitions/web_steps.rb:24:in `/^(?:|I )press "([^"]*)"$/'
features/gerenciamento.feature:12:in `E eu aperto "Cadastrar"'
</pre>
<p>Vimos um erro parecido com esse anteriormente, que significa que ainda não existe a visão correspondente para a action show. Sendo assim, vamos corrigir esse erro criando o arquivo show.html.erb na pasta app/views/pessoas, com o seguinte conteúdo:</p>
<pre  class="brush:ruby">
<p id="notice"><%= notice %>


  <b>Nome:</b>
  <%= @pessoa.nome %>



  <b>Idade:</b>
  <%= @pessoa.idade %>



  <b>Peso:</b>
  <%= @pessoa.matricula %>

</pre>
<p>Nessa visão, na primeira linha, mostramos as mensagens vindas da action, nesse caso a mensagem Pessoa cadastrada com sucesso. Após isso mostramos os dados da pessoa da forma como queríamos ver no teste que fizemos. Feito isso, ao rodarmos rake cucumber novamente, temos o erro a seguir:</p>
<pre  class="brush:ruby">
.........F

(::) failed steps (::)

expected the following element's content to include "Cadastrar nova pessoa":
Trabalho
Pessoa cadastrado com sucesso
  Nome:
  Ricardo
  Idade:
  24
  Peso:
  88.5
.
<false> is not true. (Test::Unit::AssertionFailedError)
</pre>
<p>Esse erro nos diz que está faltando mostrar a mensagem cadastrar nova pessoa, que era esperada no teste que fizemos. Obviamente, essa mensagem trata-se de um link para cadastrar novas pessoas. Para corrigir esse erro basta criarmos o link da forma mostrada a seguir, colocando no arquivo de visão <strong>show.html.erb</strong>. É possível ainda notar, que esse é o último passo e que, resolvendo esse erro, nosso cadastro estará completo e totalmente testado.</p>
<pre  class="brush:ruby">
<%= link_to "Cadastrar nova pessoa", new_pessoa_path %>
</pre>
<p>Roando rake cucumber novamente, temos a mensagem abaixo, mostrando que todos os passos do nosso teste passaram. 1 cenário e 10 passos executados com sucesso:</p>
<pre  class="brush:ruby">

ricardo@linuxmint ~/trabalho $ rake cucumber
(in /home/ricardo/trabalho)
bundle exec /usr/bin/ruby1.8 -I "/var/lib/gems/1.8/gems/cucumber-0.10.0/lib:lib" "/var/lib/gems/1.8/gems/cucumber-0.10.0/bin/cucumber"  --profile default
Using the default profile...
..........

1 scenario (1 passed)
10 steps (10 passed)
0m1.025s
</pre>
<p>Então pessoal, podemos notar que é um processo de execução do teste e correção dos erros que vão acontecendo até que tudo funcione corretamente. Espero que todos consigam chegar ao final desse tutorial com tudo executado.</p>
<p>Logo mais colocarei a especificação do nosso trabalho prático.</p>
<p>[]'s<br />
Ricardo Viana</p>
]]></content:encoded>
			<wfw:commentRss>http://ricardo.zn.inf.br/2011/02/06/tutorial-comecando-com-cucumber/feed/</wfw:commentRss>
		<slash:comments>91</slash:comments>
		</item>
		<item>
		<title>Tutorial básico: instalação do rails 3 + cucumber + webrat</title>
		<link>http://ricardo.zn.inf.br/2011/02/06/tutorial-basico-instalacao-do-rails-3-cucumber-webrat/</link>
		<comments>http://ricardo.zn.inf.br/2011/02/06/tutorial-basico-instalacao-do-rails-3-cucumber-webrat/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 20:08:54 +0000</pubDate>
		<dc:creator>ricardo</dc:creator>
				<category><![CDATA[picos]]></category>
		<category><![CDATA[qualidade de software 2011.0]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ufpi]]></category>
		<category><![CDATA[2011.0]]></category>
		<category><![CDATA[qualidade de software]]></category>

		<guid isPermaLink="false">http://ricardo.zn.inf.br/?p=795</guid>
		<description><![CDATA[Olá pessoal, vamos seguir os passos a seguir para configurarmos o ambiente necessário para fazermos nosso trabalho. Quem pegou o arquivo comigo em sala de aula não precisa seguir esses passos, fará apenas o seguinte: Extraia o arquivo que pegou para C:\Ruby e configurará a variável Path adicionando o caminho C:\Ruby\bin, da seguinte forma. Clique [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, vamos seguir os passos a seguir para configurarmos o ambiente necessário para fazermos nosso trabalho. Quem pegou o arquivo comigo em sala de aula não precisa seguir esses passos, fará apenas o seguinte:</p>
<p>Extraia o arquivo que pegou para C:\Ruby e configurará a variável Path adicionando o caminho C:\Ruby\bin, da seguinte forma. Clique com o botão direito em meu computador e vá em propriedades. Após isso vá em Configurações avançadas do sistema e clique no botão variáveis de ambiente. Localize a variável Path (se não existir, crie uma) e adicione o caminho C:\Ruby\bin. Agora, siga para o passo 4.</p>
<p><strong>Passo 1: Instalação do Ruby</strong></p>
<p>Para que vocês possam começar a trabalhar com rails é necessário primeiro instalar o Ruby. Vamos baixar a versão 1.8.7 do seguinte endereço:</p>
<p><a href="http://rubyforge.org/frs/download.php/73719/rubyinstaller-1.8.7-p330.exe">http://rubyforge.org/frs/download.php/73719/rubyinstaller-1.8.7-p330.exe</a></p>
<p>A instalação segue o padrão next, next, finish. Abaixo seguem as telas correspondentes, com o detalhe de atentar para marcar os dois checkboxes na última tela que farão a adição da pasta bin do ruby (C:\Ruby\bin) ao Path e fará a associação de arquivos com extensão .rb e .rbw com o interpretador ruby.</p>
<p><a href="http://ricardo.zn.inf.br/wp-content/uploads/2011/02/ruby1.png" rel="lightbox[795]"><img src="http://ricardo.zn.inf.br/wp-content/uploads/2011/02/ruby1-300x232.png" alt="" title="ruby1" width="300" height="232" class="alignnone size-medium wp-image-796" /></a></p>
<p><a href="http://ricardo.zn.inf.br/wp-content/uploads/2011/02/ruby2.png" rel="lightbox[795]"><img src="http://ricardo.zn.inf.br/wp-content/uploads/2011/02/ruby2-300x232.png" alt="" title="ruby2" width="300" height="232" class="alignnone size-medium wp-image-797" /></a></p>
<p><a href="http://ricardo.zn.inf.br/wp-content/uploads/2011/02/ruby3.png" rel="lightbox[795]"><img src="http://ricardo.zn.inf.br/wp-content/uploads/2011/02/ruby3-300x232.png" alt="" title="ruby3" width="300" height="232" class="alignnone size-medium wp-image-798" /></a></p>
<p><strong>Passo 2: Instalação das bibliotecas</strong></p>
<p>Para instalar bibliotecas no ruby usamos o aplicativo <strong>gem</strong>. As bilbiotecas que precisamos são, basicamente, o rails, o cucumber, o webrat e a biblioteca para acesso ao banco de dados. Vamos abrir um terminal: Iniciar-> Executar-> cmd, no Vista ou 7 digitem cmd no campo de busca do menu iniciar e pressionem enter. Nesse terminal iremos executar o seguinte comando:</p>
<pre  class="brush:ruby">
gem install rails cucumber cucumber-rails webrat sqlite3-ruby
</pre>
<p>As bibliotecas serão baixadas da internet e instaladas no computador. Esse processo deve demorar um pouco, então, não fechem a janela ou coisa do tipo achando que está travado, ok?</p>
<p><strong>Passo 3: O banco de dados</strong></p>
<p>O banco de dados que usaremos será o sqlite3 (que é o banco de dados padrão do ruby), um banco de dados bem simples que só precisa de 2 arquivos para funcionar. Vamos baixar os arquivos do seguinte endereço:</p>
<p><a href="http://www.sqlite.org/download.html">http://www.sqlite.org/download.html</a></p>
<p>Baixaremos os arquivos:</p>
<p><a href="http://www.sqlite.org/sqlite-shell-win32-x86-3070500.zip">http://www.sqlite.org/sqlite-shell-win32-x86-3070500.zip</a></p>
<p><a href="http://www.sqlite.org/sqlite-dll-win32-x86-3070500.zip">http://www.sqlite.org/sqlite-dll-win32-x86-3070500.zip</a></p>
<p>Ao extrair esses arquivos teremos os arquivos: sqlite3.exe, sqlite3.dll, sqlite3.def. Colocaremos esses arquivos na pasta bin do ruby (C:\Ruby\bin), para facilitar nosso acesso a eles.</p>
<p><strong>Passo 4: Criando uma aplicação simples</strong></p>
<p>Vamos testar nossa instalação criando uma aplicação simples. Abriremos um terminal (cmd) e executaremos o seguinte comando:</p>
<pre  class="brush:ruby">
rails new aplicativo
</pre>
<p>Será criada a pasta aplicativo com toda a estrutura necessária para a aplicação funcionar. Entraremos na pasta (cd aplicativo) e executaremos os seguintes comandos para criar um cadastro simples e verificar seu funcionamento:</p>
<pre  class="brush:ruby">
rails generate scaffold pessoa nome:string idade:integer nascimento:date peso:float
</pre>
<p>(Esse comando cria o modelo, o controlador e as visões necessárias para um cadastro de pessoas funcionar)</p>
<pre  class="brush:ruby">
rake db:create:all
</pre>
<p>(Cria os bancos de dados necessários para a aplicação (Ambientes de desenvolvimento, teste e produção))</p>
<pre  class="brush:ruby">rake db:migrate</pre>
<p>(Migra os dados para o banco: nesse caso, cria a tabela pessoas)</p>
<p>Estamos prontos para ver a aplicação funcionando, para isso, devemos iniciar o servidor:</p>
<pre  class="brush:ruby">rails server</pre>
<p>E acessar a página correspondente ao cadastro criado:</p>
<p><a href="http://localhost:3000/pessoas">http://localhost:3000/pessoas</a></p>
<p>Devemos ver o cadastro completamente funcional, com os dados inseridos na execução do scaffold.</p>
<p>No próximo tutorial colocarei um passo a passo básico de utilização do cucumber.</p>
<p>[]&#8216;s<br />
Ricardo Viana</p>
]]></content:encoded>
			<wfw:commentRss>http://ricardo.zn.inf.br/2011/02/06/tutorial-basico-instalacao-do-rails-3-cucumber-webrat/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Ruby Quick Tips</title>
		<link>http://ricardo.zn.inf.br/2010/02/18/ruby-quick-tips/</link>
		<comments>http://ricardo.zn.inf.br/2010/02/18/ruby-quick-tips/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 15:35:58 +0000</pubDate>
		<dc:creator>ricardo</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tópicos em programação 2010.0]]></category>
		<category><![CDATA[ufpi]]></category>
		<category><![CDATA[tópicos em programação]]></category>

		<guid isPermaLink="false">http://zezim.dbro.com.br/?p=563</guid>
		<description><![CDATA[Pessoal, achei esse link interessante e vou compartilhar com vocês. São pequenas dicas de códigos sobre ruby e rails postadas diariamente, muito legal. http://rubyquicktips.tumblr.com/ []&#8216;s Ricardo Viana]]></description>
			<content:encoded><![CDATA[<p>Pessoal, achei esse link interessante e vou compartilhar com vocês.</p>
<p>São pequenas dicas de códigos sobre ruby e rails postadas diariamente, muito legal.</p>
<p><a href="http://rubyquicktips.tumblr.com/">http://rubyquicktips.tumblr.com/</a></p>
<p>[]&#8216;s<br />
Ricardo Viana</p>
]]></content:encoded>
			<wfw:commentRss>http://ricardo.zn.inf.br/2010/02/18/ruby-quick-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Materiais sobre RSpec/Cucumber</title>
		<link>http://ricardo.zn.inf.br/2010/02/16/materiais-sobre-rspeccucumber/</link>
		<comments>http://ricardo.zn.inf.br/2010/02/16/materiais-sobre-rspeccucumber/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 02:59:00 +0000</pubDate>
		<dc:creator>ricardo</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tópicos em programação 2010.0]]></category>
		<category><![CDATA[testes]]></category>
		<category><![CDATA[ufpi]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[tópicos em programação]]></category>

		<guid isPermaLink="false">http://zezim.dbro.com.br/?p=561</guid>
		<description><![CDATA[Transcrevendo pra cá pessoal, alguns materiais interessantes sobre BDD/RSpec/Cucumber: Site oficial: http://cukes.info/ Repositório no github: http://github.com/aslakhellesoy/cucumber Video Caelum: http://blog.caelum.com.br/2009/10/15/screencast-ruby-on-rails-introducao-a-rspec-e-cucumber/ Blog do Diego Nogueira: http://diegonogueira.com.br/2009/07/25/materiais-sobre-cucumber/ Video vimeo: http://vimeo.com/1725411 Texto do blog do Urubatam: http://www.urubatan.com.br/cucumber-e-bdd-vantagens-para-a-empresa-argumentos-para-o-gerente-para-o-arquiteto-para-o-presidente-da-empresa/ Dois screencasts do railscasts sobre cucumber: http://railscasts.com/episodes/155-beginning-with-cucumber http://railscasts.com/episodes/159-more-on-cucumber Na série de palestras de Carlos Brando: http://www.nomedojogo.com/palestras/ Assitam a todas, ou pelo menos [...]]]></description>
			<content:encoded><![CDATA[<p>Transcrevendo pra cá pessoal, alguns materiais interessantes sobre BDD/RSpec/Cucumber:</p>
<p>Site oficial: <a href="http://cukes.info/">http://cukes.info/</a></p>
<p>Repositório no github: <a href="http://github.com/aslakhellesoy/cucumber">http://github.com/aslakhellesoy/cucumber</a></p>
<p>Video Caelum: <a href="http://blog.caelum.com.br/2009/10/15/screencast-ruby-on-rails-introducao-a-rspec-e-cucumber/">http://blog.caelum.com.br/2009/10/15/screencast-ruby-on-rails-introducao-a-rspec-e-cucumber/</a></p>
<p>Blog do Diego Nogueira: <a href="http://diegonogueira.com.br/2009/07/25/materiais-sobre-cucumber/">http://diegonogueira.com.br/2009/07/25/materiais-sobre-cucumber/</a></p>
<p>Video vimeo: <a href="http://vimeo.com/1725411">http://vimeo.com/1725411</a></p>
<p>Texto do blog do Urubatam: <a href="http://www.urubatan.com.br/cucumber-e-bdd-vantagens-para-a-empresa-argumentos-para-o-gerente-para-o-arquiteto-para-o-presidente-da-empresa/">http://www.urubatan.com.br/cucumber-e-bdd-vantagens-para-a-empresa-argumentos-para-o-gerente-para-o-arquiteto-para-o-presidente-da-empresa/</a></p>
<p>Dois screencasts do railscasts sobre cucumber:<br />
<a href="http://railscasts.com/episodes/155-beginning-with-cucumber">http://railscasts.com/episodes/155-beginning-with-cucumber</a><br />
<a href="http://railscasts.com/episodes/159-more-on-cucumber">http://railscasts.com/episodes/159-more-on-cucumber</a></p>
<p>Na série de palestras de Carlos Brando: <a href="http://www.nomedojogo.com/palestras/">http://www.nomedojogo.com/palestras/</a><br />
Assitam a todas, ou pelo menos ao de testes (só imaturos não testam), ele mostra uma abordagem inicial da utilização do RSpec e do Cucumber.</p>
<p>É isso, qualquer outro material que encontre posto aqui pra vocês.</p>
<p>[]&#8216;s<br />
Ricardo Viana</p>
]]></content:encoded>
			<wfw:commentRss>http://ricardo.zn.inf.br/2010/02/16/materiais-sobre-rspeccucumber/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

