如何解决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
相关产品推荐
相关产品推荐

