27
Set 08

Os testes vivem no diretório test dentro da aplicação rails. Dentro deste diretório, há 4 sub-diretórios; um para os testes de controller (funcional - functional), um para testes de modelo (unitários - unit), um para objetos mock (mocks) e um que apenas guarda os dados de exemplo (fixtures).

 

Para rodar estes testes, você simplesmente roda o script de teste diretamente:

ruby test/unit/my_good_old_test_unit.rb

 

Outra forma de rodar seus testes é:

  • rake test_functional => para todar os testes de controller
  • rake test_units => para rodar os testes de modelo.

rake db:test:prepare  => prepara o banco de teste e carrega o esquema.

 

Fixtures é uma palavra-fantasia para "amostra de dados". Elas lhe permitem popular seu banco de teste com dados predefinidos antes de rodar seus testes. Fixtures são bancos independentes e assumem um de dois formatos: YAML ou CSV. Você pode encontrá-las no diretório test/fixtures. Você pode usar código ruby (entre  <%%> para gerar seus dados).

  • YAML:  Formato bastante amigável, possui extensão .yml. Os registros são organizados cada um em um parágrafo, e cada campo em uma linha. Exemplo:
# comentário
david:
id: 1
name: David Heinemeier Hansson
birthday: 1979-10-15
profession: Systems development

steve:
id: 2
name: Steve Ross Kellock
birthday: 1974-09-27
profession: guy with keyboard

  • CSV: Fixtures também podem ser descritas usando um formato de arquivo no qual os valores são separados por vírgula. Esses arquivos ficam no mesmo diretório test/fixtures, mas possuem a extensão .csv. A primeira linha é o cabeçalho. Consiste  em uma lista de campos separados por vírgula. Um registro por linha.Exemplo:

     

     

    id, username, password, stretchable, comments
    1, sclaus, ihatekids, false, I like to say ""Ho! Ho! Ho!""
    2, ebunny, ihateeggs, true, Hoppity hop y'all
    3, tfairy, ilovecavities, true, "Pull your teeth, I will"


Fixtures em Ação

Você precisa deixar claro que deseja carregar suas fixtures usando o método fixtures dentro do seu TestCase. Um teste de modelo user poderia ser assim:


# Allow this test to hook into the Rails framework.
require File.dirname(__FILE__) + '/../test_helper'

class UserTest < Test::Unit::TestCase
fixtures :users

# Count the fixtures.
def test_count_my_fixtures
assert_equal 5, User.count
end
end

 

Usando o método fixtures e colocando o símbolo do nome do modelo, o Rails irá automaticamente carregar as fixtures ao iniciar cada método de teste.

fixtures :users

 Fonte: GuiaRails

publicado por dessa às 23:26
tags:

Setembro 2008
Dom
Seg
Ter
Qua
Qui
Sex
Sab

1
2
3
4
5
6

7
8
9
10
11
12
13

14
15
16
17
18
19
20

21
25
26

28
29
30


pesquisar
 
Subscrever por e-mail

A subscrição é anónima e gera, no máximo, um e-mail por dia.

blogs SAPO