首页 > 解决方案 > Pytest 版本的 Unittest assertIs

问题描述

这是这篇文章的 pytest 版本。

我写了以下测试

def test_find_winner():
assert(find_winner(easy_games, 'A', 'T'))==2
assert(find_winner(easy_games, 'T', 'L'))==1
assert(find_winner(easy_games, 'L', 'T'))==2
assert(find_winner(easy_games, 'A', 'B'))==0
assert(find_winner(easy_games, 'E', 'T'))==0
assert(find_winner(easy_games, 'E', 'A'))==0
assert(find_winner(easy_games, 'B', 'D'))==0

对于所有等于 0 的断言语句。我没有发现我返回了错误的类型。我返回的是False(A Bool) 而不是0(an int)。

Unittest 有一个assertIs函数,但似乎 pytest 只使用 assert 进行测试。是否有任何等效的功能或 pytest 替代方案来绕过真假评估

assert(find_winner(easy_games, 'B', 'D'))==0

编辑:大家好,感谢您的回复,我理解为什么 0 和 False 应该相等,但这只是我最初将它评估为 False 但如果我没有发现它,因为我的测试仍在通过,我会完全错过它。

尝试了@jonrsharpe 的建议,这正是我所需要的。

assert(find_winner(easy_games, 'B', 'D')) is 0

标签: pythonpython-3.xpytest

解决方案


推荐阅读