用unites测试Python类方法

2024-09-29 00:17:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Scheduler类和一个使用unittest__generate_potential_weeks编写的测试

你知道吗主.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

试验_调度程序.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分开测试

Tags: pyimportselfinitdefunittestnumgenerate
1条回答
网友
1楼 · 发布于 2024-09-29 00:17:40

双下划线在python中有特殊的含义。名称将被损坏,以避免子类中的名称冲突。你知道吗

如果这不是你的意图,我建议你用一个下划线来标记它。如果是,您仍然可以使用损坏的名称访问该函数。我想这对你有用:sch._Scheduler__generate_potential_weeks(4)

相关问题 更多 >