2011-02-03 14 views
26

Estoy buscando algunos ejemplos básicos del método setUpClass() de prueba unit 1.7 de python. Estoy intentando probar algunos métodos de clase en mi módulo, y he llegado tan lejos como:¿Cómo uso el método unittest setUplass()?

import unittest 
import sys 

import mymodule 

class BookTests(unittest.TestCase): 
    @classmethod 
    def setUpClass(cls): 
     cls._mine = mymodule.myclass('test_file.txt', 'baz') 

Pero no tengo ni idea de cómo proceder de aquí a escribir pruebas que utilizan el objeto que acaba de crear.

Respuesta

26

En sus métodos de prueba ahora puede acceder al atributo de clase global _mine a través de uno mismo. Así que usted puede hacer algo como esto:

def test_something(self): 
    self.assertEqual(self._mine.attribute, 'myAttribute') 
+0

¿Cómo sería esto diferente de crear el objeto directamente? es decir: def setUp (self): cls_mine = baz(). – Pradyot

+0

@Pradyot El mío está en la clase y el tuyo estaría en la instancia. Personalmente, probablemente lo configuré en el método setUp, pero eso es solo cuestión de preferencia. – sdolan

+12

@Pradyot 'setUp()' se llama antes de cada método de prueba, mientras que 'setUpClass()' se llama una vez antes de todas las pruebas. Cualquier operación costosa que muchas de sus pruebas pueden aprovechar, debe ir en 'setUpClass()'. – Dennis

5

Si está utilizando Django 1.8+, debe utilizar el método setUpTestData lugar.

Puede establecer cualquier atributo en el objeto cls y acceder a ellos a través de los métodos de prueba individuales en el objeto self.

Más información está en the Django docs.

Cuestiones relacionadas