Resumo : neste tutorial, você aprenderá como usar assertIsInstance()
o método Python para testar se um objeto é uma instância de uma classe.
Introdução ao método Python assertIsInstance()
O
é um método da assertIsInstance()
TestCase
classe do módulo unittest . O
método testa se um objeto é uma instância de uma classe .assertIsInstance()
O seguinte mostra a sintaxe do assertIsInstance()
método:
assertIsInstance(obj, cls, msg=None)
Linguagem de código: Python ( python )
Nesta sintaxe:
obj
é o objeto a ser testado.cls
é uma classe ou uma tupla de classes.msg
é uma string opcional que será exibida seobj
não for uma instância dacls
classe.
Internamente, assertIsInstance()
usa a isinstance()
função para verificar se o objeto é uma instância da cls
classe.
Se the cls
não for a classe do obj, mas a classe base da classe do obj, o teste também será aprovado.
Como a classe do objeto é a classe base de todas as classes, assertIsInstance(obj, object)
sempre passará.
Exemplos do método Python assertIsInstance()
Vamos criar um shape.py
módulo com duas classes Shape
e Square
. A Shape
classe é a classe base da Square
classe:
class Shape:
pass
class Square(Shape):
pass
Linguagem de código: Python ( python )
Para simplificar, as classes Shape
e Square
não têm implementação.
1) Usando o exemplo do método Python assertIsInstance()
O exemplo a seguir usa o assertIsInstance()
método para testar se o square
objeto é uma instância da Square
classe:
import unittest
from shape import Shape, Square
class TestShape(unittest.TestCase):
def setUp(self):
self.square = Square()
def test_is_instance(self):
self.assertIsInstance(self.square, Square)
Linguagem de código: Python ( python )
Execute o teste:
python -m unittest -v
Linguagem de código: Python ( python )
Saída:
test_is_instance (test_shape.TestShape) ... ok
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK
Linguagem de código: texto simples ( texto simples )
Como a square
variável de instância é um objeto da Square
classe, o teste é aprovado.
2) Usando o método Python assertIsInstance() com um exemplo de classe base
O exemplo a seguir usa o assertIsInstance()
método para testar se square
é uma instância da Shape
classe:
import unittest
from shape import Shape, Square
class TestShape(unittest.TestCase):
def setUp(self):
self.square = Square()
def test_is_instance(self):
self.assertIsInstance(self.square, Square)
def test_is_instance_of_parent_class(self):
self.assertIsInstance(self.square, Shape)
Linguagem de código: Python ( python )
Execute o teste:
python -m unittest -v
Linguagem de código: Python ( python )
Saída:
test_is_instance (test_shape.TestShape) ... ok
test_is_instance_of_parent_class (test_shape.TestShape) ... ok
----------------------------------------------------------------------
Ran 2 tests in 0.001s
OK
Linguagem de código: texto simples ( texto simples )
3) Usando o método Python assertIsInstance() para testar se um objeto é uma instância da classe de objeto
O exemplo a seguir usa assertIsInstance()
método para testar se a square
variável de instância é uma instância da object
classe:
import unittest
from shape import Shape, Square
class TestShape(unittest.TestCase):
def setUp(self):
self.square = Square()
def test_is_instance(self):
self.assertIsInstance(self.square, Square)
def test_is_instance_of_parent_class(self):
self.assertIsInstance(self.square, Shape)
def test_is_instance_of_object(self):
self.assertIsInstance(self.square, object)
Linguagem de código: Python ( python )
Execute o teste:
python -m unittest -v
Linguagem de código: Python ( python )
Saída:
test_is_instance (test_shape.TestShape) ... ok
test_is_instance_of_object (test_shape.TestShape) ... ok
test_is_instance_of_parent_class (test_shape.TestShape) ... ok
----------------------------------------------------------------------
Ran 3 tests in 0.001s
OK
Linguagem de código: texto simples ( texto simples )
Método Python assertIsNotInstance()
O assertIsNotInstance()
é o oposto do assertIsInstance()
método. Ele testa se um objeto não é uma instância de uma classe:
assertNotIsInstance(obj, cls, msg=None)
Linguagem de código: Python ( python )
Por exemplo:
import unittest
from shape import Shape, Square
class TestShape(unittest.TestCase):
def setUp(self):
self.square = Square()
def test_is_instance(self):
self.assertIsInstance(self.square, Square)
def test_is_instance_of_parent_class(self):
self.assertIsInstance(self.square, Shape)
def test_is_instance_of_object(self):
self.assertIsInstance(self.square, object)
def test_is_not_instance(self):
shape = Shape()
self.assertNotIsInstance(shape, Square)
Linguagem de código: Python ( python )
Neste exemplo, o test_is_not_instance()
método usa o assertIsNotInstance()
método para testar se um Shape
objeto é uma instância da Square
classe.
Execute o teste:
python -m unittest -v
Linguagem de código: Python ( python )
Saída:
test_is_instance (test_shape.TestShape) ... ok
test_is_instance_of_object (test_shape.TestShape) ... ok
test_is_instance_of_parent_class (test_shape.TestShape) ... ok
test_is_not_instance (test_shape.TestShape) ... ok
----------------------------------------------------------------------
Ran 4 tests in 0.002s
OK
Linguagem de código: texto simples ( texto simples )
Resumo
- Use o
assertIsInstance()
método para testar se um objeto é uma instância de uma classe. - Use o
assertIsNotInstance()
método para testar se um objeto não é uma instância de uma classe.