2011-02-03 3 views
26

Я ищу некоторые базовые примеры метода setUpClass() для python 2.7 unittest. Я пытаюсь проверить некоторые методы класса в моем модуле, и я получил, насколько:Как использовать метод unitest setUpClass()?

import unittest 
import sys 

import mymodule 

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

Но я не знаю, как действовать дальше, чтобы писать тесты, использующие объект, я только что создал.

ответ

26

В ваших методах тестирования вы можете получить доступ к атрибуту глобального класса _mine через self. Так что вы можете сделать что-то вроде этого:

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

Как это будет отличаться от создания объекта напрямую. ie: def setUp (self): cls_mine = baz(). – Pradyot

+0

@Pradyot Mine на классе, и ваш будет на экземпляре. Я лично, вероятно, установил бы его в методе setUp, но это только вопрос предпочтения. – sdolan

+12

@Pradyot 'setUp()' вызывается перед каждым тестовым методом, тогда как 'setUpClass()' вызывается один раз перед всеми тестами. Любые дорогостоящие операции, которые могут использовать многие ваши тесты, должны идти в 'setUpClass()'. – Dennis

5

Если вы используете Django 1.8+, вы должны использовать метод setUpTestData вместо этого.

Затем вы можете установить любые атрибуты объекта cls и получить к ним доступ через отдельные методы тестирования объекта self.

Дополнительная информация находится в the Django docs.

Смежные вопросы