【问题标题】:Testing Python descriptors测试 Python 描述符
【发布时间】:2014-02-13 12:35:34
【问题描述】:

有没有人有任何关于测试 Python 描述符的提示或良好做法?

我正在编写一些描述符来封装数据验证,并想为它们编写测试。

一方面,我想知道是否应该通过在测试中创建描述符实例然后显式调用__get____set__ 方法来测试它们。

或者我应该在我的测试文件中创建一个使用描述符类的特殊类,然后在我的测试中使用 that 类?

或者我应该将描述符添加到我的 unittest.TestCase 的子类中吗?

任何其他提示将不胜感激。

【问题讨论】:

    标签: python unit-testing testing descriptor


    【解决方案1】:

    我会直接调用描述符方法。您正在对描述符进行单元测试,而不是 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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 2011-10-30
      相关资源
      最近更新 更多