2014-02-13 4 views
0

Есть ли у кого-нибудь советы или рекомендации по тестированию дескрипторов Python?Тестирование дескрипторов Python

Я пишу некоторые дескрипторы, чтобы инкапсулировать проверку данных и хочу написать для них тесты.

С одной стороны, мне интересно, следует ли тестировать их, создавая экземпляры дескрипторов в моих тестах, а затем явным образом вызываю методы __get__ или __set__.

Или я должен создать специальный класс в своем тестовом файле, который использует класс дескриптора, а затем использовать , что класс в моих тестах?

Или я должен добавить дескриптор в мой подкласс unittest.TestCase?

Любые другие советы будут оценены.

ответ

2

Я бы назвал методы дескриптора напрямую. Вы тестируете дескрипторы, а не как Python использует дескрипторы в целом.

Таким образом, вы также имеете гораздо больший контроль над тем, что именно проходит; вы можете издеваться над аргументами типа и экземпляра в своем содержании.

import unittest 


class MockClass(object): 
    # add any methods to assert access here 


class DescriptorTests(unittest.TestCase): 
    def _make_one(self, *args, **kw): 
     from original_module import DescriptorClass 
     return DescriptorClass(*args, **kw) 

    def test_class_access(self): 
     # only a type is passed in, no instance 
     desc = self._make_one() 
     res = desc.__get__(None, MockClass) 
     self.assertEqual(res.someattribute, 'somevalue') 

    # etc. 


if __name__ == '__main__': 
    unittest.main() 

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

  • Нет связанных вопросов^_^