如何比较Flutter单元测试期望函数中的两个列表?

rhfm7lfc  于 2023-01-14  发布在  Flutter
关注(0)|答案(2)|浏览(196)

List<int> l1=[1,2,3]; List<int> l2=[1,2,3]; expect (l1,l2);
这是我在Flutter单元测试中使用的代码。
即使两个列表有相同的内容,我还是无法通过测试。我无法找到在Flutter单元测试中使用Equatable比较列表的用例。有人能帮忙吗?谢谢!

vfhzx4xs

vfhzx4xs1#

可以使用ListEquality().equals()方法检查两个List是否相等。

import 'package:collection/collection.dart';

List<int> l1 = [1,2,3];  
List<int> l2 = [1,2,3];
final bool equal = ListEquality().equals(l1, l2);
expect(equal, true);
68de4m5k

68de4m5k2#

在Dart中,列表相等性的工作方式不同。因为所有东西都是对象,所以需要一种机制来检查每个元素。
你可以使用ListEquality类来比较两个列表,如果它们没有嵌套的对象/信息,或者,如果你想比较嵌套的对象/信息,你可以使用DeepCollectionEquality。这两个都来自集合库,它是随Dart一起提供的。
您可以查看以下用法示例:

import 'package:collection/collection.dart';

void main() {
  const numberListOne = [1,2,3];
  const numberListTwo = [1,2,3];
  
  final _listEquality = ListEquality();
  print(_listEquality.equals(numberListOne, numberListTwo));
}

相关问题