Python - 使用 unittest 测试 class 方法
Python - Testing class methods with unittest
我有一个 Scheduler
class 和一个使用 unittest
为 __generate_potential_weeks
编写的测试
main.py
class Scheduler:
def __init__(self, num_teams, num_weeks):
self.potential_weeks = self.__generate_potential_weeks(num_teams)
# Other stuff
def __generate_potential_weeks(self, num_teams):
# Does some things
test_scheduler.py
import unittest
from main import Scheduler
class SchedulerTestCase(unittest.TestCase):
def test_generate_weeks(self):
sch = Scheduler(4, 14)
weeks = sch.__generate_potential_weeks(4)
当我尝试测试 __generate_potential_weeks
时,出现以下错误
AttributeError: 'Scheduler' object has no attribute '_SchedulerTestCase__generate_potential_weeks'
问题
- 为什么测试找不到
__generate_potential_weeks
- 如何测试
__generate_potential_weeks
?它有一些复杂的逻辑,我想与 Scheduler
分开测试
双下划线在python中有特殊含义。名称将被破坏以避免子类中的名称冲突。
如果这不是您的意图,我鼓励您用一个下划线标记它。如果是,您仍然可以使用损坏的名称访问该函数。我认为这对你有用:sch._Scheduler__generate_potential_weeks(4)
我有一个 Scheduler
class 和一个使用 unittest
__generate_potential_weeks
编写的测试
main.py
class Scheduler:
def __init__(self, num_teams, num_weeks):
self.potential_weeks = self.__generate_potential_weeks(num_teams)
# Other stuff
def __generate_potential_weeks(self, num_teams):
# Does some things
test_scheduler.py
import unittest
from main import Scheduler
class SchedulerTestCase(unittest.TestCase):
def test_generate_weeks(self):
sch = Scheduler(4, 14)
weeks = sch.__generate_potential_weeks(4)
当我尝试测试 __generate_potential_weeks
时,出现以下错误
AttributeError: 'Scheduler' object has no attribute '_SchedulerTestCase__generate_potential_weeks'
问题
- 为什么测试找不到
__generate_potential_weeks
- 如何测试
__generate_potential_weeks
?它有一些复杂的逻辑,我想与Scheduler
分开测试
双下划线在python中有特殊含义。名称将被破坏以避免子类中的名称冲突。
如果这不是您的意图,我鼓励您用一个下划线标记它。如果是,您仍然可以使用损坏的名称访问该函数。我认为这对你有用:sch._Scheduler__generate_potential_weeks(4)