我想与测试用例中的迭代器进行比较。不幸的是,assert_eq!
不喜欢被传递为迭代器。
一种解决方法如下:
let mut a = 0..5;
let mut b = 0..6;
assert!(a.by_ref().zip(b.by_ref()).all(|(a, b)| a == b));
assert_eq!(a.next(), None);
assert_eq!(b.next(), None);
但是测试需要3(或至少)2行,并且迭代器需要可变。有什么更好的吗?
答案 0 :(得分:0)
有Iterator::eq
。我认为这应该是赢家:
<div class="col-lg-10">
<a href="{{ url 'add_to_cart' slug=item.slug }}" class="btn btn-primary">Add to Cart</a>
</div>
结果是有assert!(a.eq(b));
:
itertools::assert_equal
虽然不是很漂亮,但这是使用zip_longest
的解决方案:
let a = 0..6;
let b = 0..6;
itertools::assert_equal(a, b);