首页 > 解决方案 > Python - 使用 unittest 测试类方法

问题描述

我有一堂课和一个使用unittestScheduler编写的测试__generate_potential_weeks

主文件

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'

问题

标签: pythonpython-unittest

解决方案


双下划线在 python 中有特殊的含义。该名称将被修改以避免子类中的名称冲突。

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


推荐阅读