我有一个 Scheduler
类和一个使用 unittest 为 __generate_pottial_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_pottial_weeks
时,出现以下错误
AttributeError: 'Scheduler' object has no attribute '_SchedulerTestCase__generate_potential_weeks'
问题
- 为什么测试找不到
__generate_pottial_weeks
- 如何测试
__generate_pottial_weeks
?它有一些复杂的逻辑,我想与Scheduler
分开测试
最佳答案
双下划线在Python中有特殊的含义。该名称将被破坏以避免子类中的名称冲突。
如果这不是您的意图,我建议您用一个下划线对其进行标记。如果是,您仍然可以使用损坏的名称来访问该函数。我认为这对你有用:sch._Scheduler__generate_pottial_weeks(4)
关于Python - 使用unittest测试类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54808092/