我需要为我的功能编写测试。现在我只检查我的回报类型:
assert type(main.get_values(path)) == list
我能否以某种方式检查返回的值是list
还是list of strings
?我是python的新手,所以这可能是一个非常蹩脚的问题。
答案 0 :(得分:2)
修改强> 正如quamrana所提到的,测试值隐式验证类型,也是我通常会做的。但是,这是对原始问题的回答。
与许多语言中的某些数组类型不同,Python列表允许包含任何数据类型组合。因此,实现此目的的最清楚(虽然繁琐)方法是检查列表中的每个值以确保它是一个字符串。例如,
case class Node[T](v: T, lft: Tree[T], rght: Tree[T]) extends Tree[T]
case class Leaf[T](v: T) extends Tree[T]
如果你有这样的数据
,这将让你的测试通过# Check to see if data is a list, as before
assert type(my_data) is list
# Now check each value in your data is a string
for value in my_data:
assert type(value) is str
但如果你有这样的数据
那就没有了my_data = ["h", "e", "l", "l", "o"]
答案 1 :(得分:1)
除了可接受的答案,您还可以
# Check to see if data is a list, as before
assert isinstance(value, list)