Criando Sua Primeira Gem Parte 3

Agora entramos na parte de teste, então porque fazer testes ? Teste é extremamente importante, pois não só garante que seu código funcione, como ajuda aos outros a saberem que sua gem irá fazer o serviço lol.

Antes de começar dê uma olhada Criando Sua Primeira Gem Parte 1

Começamos adicionando um arquivo com o nome Rakefile, que nos permitirá automatizar os testes:

touch Rakefile

Agora colocamos um pouco de código no arquivo:

1
2
3
4
5
6
7
8
require 'rake/testtask'

Rake::TestTask.new do |t|
  t.libs << 'test'
end

desc "Run tests"
task :default => :test

E agora vamos criar uma pasta com o nome test e um arquivo como o nome test_miguxo_gem.rb:

mkdir test
cd test
touch test_miguxo_gem.rb

Colocamos um pouco de código no arquivo test_miguxo_gem.rb:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# -*- coding: utf-8 -*-
require 'test/unit'
require 'miguxo_gem'

class MiguxoTest < Test::Unit::TestCase
  def test_dmitrynix_miguxo
    assert_equal "Olá Miguxito Mestre em Testes lol",
      Miguxo.xaudacao(:dmitrynix)
  end

  def test_caironoleto_miguxo
    assert_equal "Olá Miguxito Mestre em Rails lol",
      Miguxo.xaudacao(:caironoleto)
  end

  def test_infoslack_miguxo
    assert_equal "Olá Miguxito Mestre em Sugurança lol",
      Miguxo.xaudacao(:infoslack)
  end

  def test_leandrosales_miguxo
    assert_equal "Olá Miguxito Mestre em Sacanagem lol",
      Miguxo.xaudacao(:leandrosales)
  end

  def test_weldyss_miguxo
    assert_equal "Olá Miguxito Chefe lol",
      Miguxo.xaudacao(:weldyss)
  end

  def test_any_ola_miguxo
    assert_equal "Olá Miguxito",
      Miguxo.xaudacao("rails")
  end

end

Nossa nova estrutura deve ficar assim:

% Nova estrutura
.
├── Rakefile
├── miguxo_gem.gemspec
├── lib
│   ├── miguxo
│   │   └── miguxito.rb
│   └── miguxo_gem.rb
└── test
    └── test_miguxo_gem.rb

Pronto agora sua gem já esta com os testes, vamos executar, abra o terminal e digite:

rake test

A saída deve ser a seguinte:

Run options: 

# Running tests:

......

Finished tests in 0.000863s, 6950.5423 tests/s, 6950.5423 assertions/s.

6 tests, 6 assertions, 0 failures, 0 errors, 0 skips

Simples e fácil lol.

Comments