Testes unitários com Test::Unit Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Testes unitários com Test::Unit

2 participantes

Ir para baixo

Testes unitários com Test::Unit Empty Testes unitários com Test::Unit

Mensagem por Valentine Qui maio 10, 2018 7:40 am

O que são testes unitários?
São testes desenvolvidos para validarem "unidades" dentro do seu software, essas unidades podem ser métodos, classes, módulos etc... Essa validação é feita com a comparação da saída de alguma função com o resultado esperado. Ao final da execução um relatório é mostrado contendo informações sobre o processo (número de testes, sucessos e falhas por exemplo). Frameworks de testes unitários possibilitam a realização desses testes de maneira mais simples, rápida e com mais transparência.

O que precisa ser testado?
Não pense que é só sair testando todo código que aparece pela frente que vai ficar tudo bem no final. Pelo contrário, isso só vai te atrasar. No geral, funções com retorno e efeitos colaterais devem ser testados para garantir a integridade da aplicação.

Como realizar esses testes?
Assumindo que esse é seu primeiro contato com testes unitários, o melhor meio (por simplicidade) para fazer isso é o Test::Unit. É um módulo em Ruby e possui todas as funcionalidades básicas que um framework com esse fim deve ter.

Primeiramente temos nossa classe que será testada (nota-se que essa classe está sendo usada apenas como exemplo já que seus métodos são muitos simples e o resultado é óbvio). É uma lista de amigos e nela temos algumas funções, sendo: add para adicionar amigos, remove para remover e clear para limpar.
Código:
# File: friend_list.rb
 
class FriendList
    def initialize
        @friends = []
    end
 
    def add(name)
        @friends << name
        name
    end
 
    def remove(name)
        @friends.delete(name)
        name
    end
 
    def clear
        @friends.clear
        @friends
    end
end

Os testes para essa classe ficariam da seguinte forma:
Código:
# File: friend_list_tests.rb
require 'friend_list'
require 'test/unit'
 
class TestFriendList < Test::Unit::TestCase
  def test_return
    list = FriendList.new
 
    assert_equal('Paulo Soreto', list.add('Paulo Soreto'))
    assert_equal('Pedro Josefino', list.add('Pedro Josefino'))
    assert_equal([], list.clear)
  end
 
  def test_methods
    list = FriendList.new
 
    list.add('Paulo Soreto')
    assert_equal(['Paulo Soreto'], list)
 
    list.add('Pedro Josefino')
    assert_equal(['Paulo Soreto', 'Pedro Josefino'], list)
 
    list.remove('Paulo Soreto')
    assert_equal(['Pedro Josefino'], list)
 
    list.clear
    assert_equal([], list)
  end
end

Créditos:
Paulo Soreto
Valentine
Valentine
Administrador
Administrador

Medalhas : Testes unitários com Test::Unit ZgLkiRU
Mensagens : 5341
Créditos : 1164

https://www.aldeiarpg.com/

Ir para o topo Ir para baixo

Testes unitários com Test::Unit Empty Re: Testes unitários com Test::Unit

Mensagem por Jonny157 Qui maio 10, 2018 9:18 am

Que isso, teste unitário é conteúdo de primeira, muito bom Valentine vou até mensagem removida pela staff

Obrigado por compartilhar, só conhecia testes unitários no C#.
Jonny157
Jonny157
Ocasional
Ocasional

Mensagens : 245
Créditos : 9

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos