python - 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'
问题
- 为什么测试找不到
__generate_potential_weeks
- 我该如何测试
__generate_potential_weeks
?它有一些我想单独测试的复杂逻辑Scheduler
解决方案
双下划线在 python 中有特殊的含义。该名称将被修改以避免子类中的名称冲突。
如果这不是你的意图,我鼓励你用一个下划线标记它。如果是这样,您仍然可以使用损坏的名称访问该函数。我认为这对你有用:sch._Scheduler__generate_potential_weeks(4)
推荐阅读
- php - 从所有表中选择行的简单方法
- java - 主线程可以访问线程的 Threadlocal
- c# - EF Core - 创建没有连接字符串的迁移
- python - Python3 urlopen 在本地主机(127.0.0.1)上获取“504 网关超时”
- java - Hibernate 异常一直由 RuntimeException.class 而不是 HibernateException.class 处理
- excel - 如果复选框值为真,则仅显示值
- r - R 中是否有与 SQL 的 EXPLAIN 等价的东西?
- ide - 如何导出/导入 spyder IDE 的键盘快捷键
- c# - 具有不同查询选择列表的广义 DTO 填充方法
- azure - 如何在上传到应用程序洞察力的 webtest 中支持循环?