Aprendizado orientado a testes

27ago07

Você provavelmente já ouviu falar de Test-Driven Development (desenvolvimento orientado a testes) e provavelmente até utiliza esse método. Se não utiliza, deveria começar a pensar seriamente nisso.

Recentemente, passeando por alguns blogs, encontei um post falando sobre aprendizando orientado a testes. Neste caso, aprendizado de Ruby utilizando o framework para testes unitários incluso na linguagem (leia sobre o framework aqui e aqui). Veja o post e sua sequência.

Essa abordagem é bastante interessante pois estimula o aprendizado através da experimentação e da descoberta. Os testes unitários são uma excelente forma de descobrir como algo funciona em uma linguagem. É claro que a documentação é importante (e a documentação do Ruby é muito boa: simples, direta e completa), mas todos sabemos que a melhor documentação é o código-fonte, aquele que gira as engrenagens e faz com que tudo funcione (ou não…).

Estimulado por esses artigos, comecei a escrever alguns métodos de teste para aprender os comportamentos do Ruby, veja abaixo alguns deles (para a classe String):

require ‘test/unit’

class StringTest < Test::Unit::TestCase

  def test_length
    s = “Hello, World!”
    assert_equal(13,s.length)
  end

  def test_gsub
    s = “Este, texto, contem, muitas, virgulas”
    s = s.gsub(“,”, “”)
    assert_equal(“Este texto contem muitas virgulas”, s)

    s = “Bola”
    s.gsub!(/[aeiou]/,“*”) #altera o proprio objeto
    assert_equal(“B*l*”, s)
  end

  def test_regexp
    cep = “99000-999”
    patt = /\d{5}[-]\d{3}/
    assert_match(patt, cep)   

    fone = “(99) 9999-9999”
    patt = /[(]\d{2}[)]\s?\d{4}[-]\d{4}/
    assert_match(patt, fone)

    fone = “(99)9999-9999”
    assert_match(patt, fone)

  end
end

Anúncios


No Responses Yet to “Aprendizado orientado a testes”

  1. Deixe um comentário

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s


%d blogueiros gostam disto: