pyunit. o que é? framework de teste baseado no junit versão atual 1.4.1

21
PyUnit

Upload: internet

Post on 17-Apr-2015

149 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

PyUnit

Page 2: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

O que é?

Framework de teste baseado no JUnit Versão atual 1.4.1

Page 3: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Download

Última versão: http://prdownloads.sourceforge.net/pyunit/pyunit-1.4.1.zip

Para versões do Python acima do 2.1 já está embutido

Page 4: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Usando o PyUnit

A classe chave é a TestCase do módulo unittest

Toda e qualquer classe de Teste deve estender ela

Page 5: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Exemplo de uma classe de teste

Page 6: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Usando o PyUnit

Da mesma forma que no JUnit podemos definir métodos setUp e tearDown

Page 7: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

setUp e tearDown

Page 8: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Suíte de Testes

Várias são as formas: Criando as classes com nomes no

construtor Criando uma suíte genérica e

adicionando os testes Usando a função map

Page 9: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Suíte de Testes

Não criar uma suíte e usar o prefixo test antes de cada método para rodar no Eclipse

Melhor Solução: Criar um padrão para o nome dos métodos e usar o makesuite ]. Assim garantimos flexibilidade

Page 10: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Suíte de Testes

Page 11: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Assertions

Tipicamente usa-se o assert típico do Python

class WidgetTestCase(unittest.TestCase): def testDefaultSize(self): """Check that widgets are created with correct default size""" assert self.widget.size() == (50,50), 'incorrect default size'

Page 12: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Assertions

Problema: Se for necessário rodar o Python com otimização ligada os asserts típicos são pulados

Solução: Usar os métodos do PyUnit

Page 13: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Assertions

Outras formas de testar condições booleanas: Falha com condições verdadeiras

def runTest(self): self.failIf(self.widget.size() <> (100,100))

Page 14: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Assertions

assertEqual e assertNotEqual

def testSomething(self): self.widget.resize(100,100) self.assertEqual(self.widget.size, (100,100))

Page 15: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Assertions

O PyUnit fornece aliases para os métodos anteriores: assertEqual = failUnlessEqual assertNotEqual = failIfEqual

Page 16: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Assertions

Fail típico

def runTest(self): ... if not myObject.name = “Test”: self.fail("Wrong name") # or just 'self.fail()'

Page 17: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Exceções

Teste com Exceções Temos três soluções para testar situações

em que exceções esperadas não são lançadas

Page 18: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Exceções

Forma mais similar a Java

def runTest(self): try: self.widget.resize(-1,-1)

fail("expected a ValueError") except ValueError: pass

Page 19: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Exceções

Forma típica do Python

def runTest(self): try: self.widget.resize(-1,-1) except ValueError: pass else: fail("expected a ValueError")

Page 20: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Exceções

Usando o método do PyUnit

def runTest(self): self.assertRaises(ValueError, self.widget.resize, -1, -1)

Page 21: PyUnit. O que é? Framework de teste baseado no JUnit Versão atual 1.4.1

Referências

http://pyunit.sourceforge.net/