Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python assertEquals生成器_Python - Fatal编程技术网

Python assertEquals生成器

Python assertEquals生成器,python,Python,我正在单元测试一个包含对象的生成器对象。我想检查objects value属性,看看它是否如预期的那样包含数字 生成器对象包含来自类测试的5个对象实例。所以我想做这样的事情: 伪代码: 生成器对象(要列出)中所有测试实例对象的value属性(Test.value)都等于[1,2,3,4,5] 使用一行for循环或assertEquals方法内部的某些东西是否可以实现这一点 因为只有5个元素,所以只需使用列表即可 assertEqual([test.value for test in test_i

我正在单元测试一个包含对象的生成器对象。我想检查objects value属性,看看它是否如预期的那样包含数字

生成器对象包含来自类测试的5个对象实例。所以我想做这样的事情:

伪代码: 生成器对象(要列出)中所有测试实例对象的value属性(Test.value)都等于[1,2,3,4,5]


使用一行for循环或assertEquals方法内部的某些东西是否可以实现这一点

因为只有5个元素,所以只需使用列表即可

assertEqual([test.value for test in test_instance_objects], [1, 2, 3, 4, 5])

非常感谢。第一个例子就是我的意思,它非常有效。既然您提到了“仅5个”,我猜这是一种无效的方法?一旦您使用了大型数据集(例如,生成器中的10000个元素),您就不一定要同时将所有这些元素保留在内存中。所以,一旦你得到了这么大,我建议在生成器上做一个for循环,而不是列表理解。但是,5个元素的大小远没有让我担心的那么大。在尝试后一个示例时,我得到了:“断言者错误:第一个序列没有长度。非序列?”你是对的。我使用
xrange()
作为测试。废话。然后我想我只是回到了我的原始陈述,仍然存在于这个答案上。