You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python单元测试运行报错TypeError:is_peak()缺少必填参数start_time如何解决

单元测试报错问题解决方案

你遇到的报错是两个错误共同导致的,对应修复方案如下:

错误原因1:实例方法调用规则错误

is_peak是Calculator类的实例方法,这类方法定义时第一个参数self指代实例对象,调用规则为:必须先创建类的实例,再通过实例调用方法。
你直接通过类名Calculator.is_peak()调用时,Python不会自动传入self参数,你输入的'9:40'会被识别为self的取值,系统自然会提示缺少第二个必填参数start_time。

错误原因2:调用的方法名拼写错误

Calculator类中定义的判断方法名为is_peak,你的测试代码中错误写为is_time,即便调用规则修复后也会触发方法不存在的报错。

修复后的测试代码

import unittest

class Calculator():
    def __init__(self):
        pass
    def is_peak(self, start_time: str):
        time = start_time.split(':') 
        hour = time[0]
        int_hour = int(hour)
        return 6 <= int_hour < 18

class TestCalculator(unittest.TestCase):
    def test_time(self):
        # 先创建Calculator类的实例
        cal = Calculator()
        # 通过实例调用正确的方法名is_peak
        self.assertEqual(True, cal.is_peak('9:40'))

if __name__ == '__main__':
    unittest.main()

修复后运行单元测试即可正常通过,传入'9:40'时is_peak返回True,符合断言逻辑。

内容的提问来源于stack exchange,提问作者user16938825

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:27:01