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

如何解决pytest测试中get_verb函数现在时场景触发断言错误问题

问题根因

你当前的get_verb函数中,现在时(present)分支逻辑强依赖入参grammatical_number的取值,必须传入1或2才能匹配到对应分支返回正确动词,且你现有的测试用例完全没有覆盖现在时的校验逻辑,这是现在时场景触发断言错误的核心原因。

修复方案

直接补充现在时两种数值的测试分支即可,修改后的完整测试代码如下:

def test_get_verb():
    # 测试过去时
    past_verbs = ["drank", "ate", "grew", "laughed", "thought", "ran", "slept", "talked", "walked", "wrote"]
    for _ in range(4):
        word = get_verb(1, tense = "past")
        assert word in past_verbs

    # 测试将来时
    future_verbs = ["will drink", "will eat", "will grow", "will laugh","will think", "will run", "will sleep", "will talk","will walk", "will write"]
    for _ in range(4):
        word = get_verb(1, tense = "future")
        assert word in future_verbs
    
    # 新增:测试现在时第三人称单数场景(grammatical_number=1)
    present_singular_verbs = ["drinks", "eats", "grows", "laughs", "thinks", "runs", "sleeps", "talks", "walks", "writes"]
    for _ in range(4):
        word = get_verb(1, tense = "present")
        assert word in present_singular_verbs
    
    # 新增:测试现在时非第三人称单数场景(grammatical_number=2)
    present_plural_verbs = ["drink", "eat", "grow", "laugh", "think", "run", "sleep", "talk", "walk", "write"]
    for _ in range(4):
        word = get_verb(2, tense = "present")
        assert word in present_plural_verbs

注意:如果调用get_verb时传入的grammatical_number不是1/2、或者tense拼写错误,函数会返回None也会触发断言,调用时需确保参数合法。

内容的提问来源于stack exchange,提问作者João Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:09:03