【发布时间】:2019-08-14 07:41:14
【问题描述】:
我有一个函数,它可以返回两个整数的元组或(None, None) 的元组:
(为了这个问题,我们假设这个返回格式是唯一的方法,并且不能改变)
from typing import Tuple, Union
def foo(n: int) -> Union[Tuple[int, int], Tuple[None, None]]:
if n < 0:
return None, None
return n, n
那我想写一个pytest unittest 来测试这个功能。总是说应该将None 与is 进行比较,但这显然行不通:
def test_foo():
assert foo(1) == (1, 1)
assert foo(-1) is (None, None) # fails obviously!
在这种情况下我应该只使用== 来比较结果吗?
def test_foo():
assert foo(1) == (1, 1)
assert foo(-1) == (None, None) # best way?
【问题讨论】:
-
您不与
None比较,而是与一个元组(恰好包含None)进行比较。所以与==比较是要走的路。 -
@Matthias 是的,这是我对此的假设,但由于我找不到任何问题,所以我想 a) 确保我的假设是正确的 b) 提供答案也为将来的其他人:)
标签: python tuples nonetype comparison-operators