方法Python里面的测试方法

时间:2017-03-16 16:53:43

标签: python unit-testing testing

我可以在Python中测试方法内的方法吗?

search.py​​

   def SearchWeb(query=None):
        """Search via API"""
        search = cool_api.api_request(query)
        def _HandleResponse(search):
            if search:
              return search['result']
        return _HandleResponse(search)

我想使用unittest

_HandleResponse创建测试方法

search_test.py

import unittest

class MyTest(unittest.TestCase):
    def test(self):
        response = {}
        response['result'] = 'yes'
        self.assertEqual(search._HandleResponse(response), 'yes')

_HandleResponse无法访问。我明白了:

AttributeError: 'module' object has no attribute '_HandleResponse'

我可以在_HandleResponse方法之外移动SearchWeb,这样可行,但想知道这是否可行?

1 个答案:

答案 0 :(得分:1)

据我所知,这是不可能的。

每次调用函数时都会创建嵌套方法。这意味着您没有静态引用它,并且您无法将测试写入不存在的函数。您必须通过SearchWeb函数进行测试。

旁注:从技术上讲,你可以做一些(复杂的)事情,但我认为没有一点值得一提。