【发布时间】:2016-09-04 13:12:30
【问题描述】:
我想确保twist_data 只获取整数列表作为参数,并添加单元测试。
def twist_data(n):
n=list(n)
a=[]
b=[]
for i in n:
if i<=0:
a.append(i)
if i>0:
b.append(i)
n=[len(a),sum(b)]
return n
gum=[2,4,5,-6,-7,]
print (twist_data (gum))
【问题讨论】:
-
你的问题是如何确保函数只有在
n是一个列表时才能完成? -
我的意思是。我希望能够以 pyhonic 方式测试参数是整数列表。因此,如果有人为 dict 或 tuple 调用该函数,它将给他一个自定义的错误消息。如果他调用它的元素是字符串的列表,那么它也会给他一个自定义的错误消息
-
我不认为有一个 Python 的方法来测试你在问什么,因为只使用列表(当任何可迭代对象都可以)不是 Python 的。同样,如果
n中有一个无法与整数比较的值(如果您使用的是 Python 3,它将包括字符串,其中像<=这样的比较运算符在任意之间不起作用类型)。 -
那我该怎么办。我试过这个:
-
澄清标题,根据澄清 OP 中的 cmets 改写问题
标签: python unit-testing