Dart单元测试产生无用的输出

Dart单元测试产生无用的输出,dart,angular-dart,dart-unittest,Dart,Angular Dart,Dart Unittest,我正在学习AngularDart教程,并试图在完成练习时编写单元测试 我有一个测试,看起来像这样: test('应将糖成分转化为枫糖糖浆'),注入((糖过滤器){ var r1=新配方(空,空,空,['成分中含有糖'],'bla',空,空); var r1New=新配方(null,null,null,['成分中含有枫糖'],'bla',null,null); var r2=新配方(空,空,空,['含有纯成分'],'bla',空,空); 变量inList=[r1,r2]; var-outList=

我正在学习AngularDart教程,并试图在完成练习时编写单元测试

我有一个测试,看起来像这样:

test('应将糖成分转化为枫糖糖浆'),注入((糖过滤器){
var r1=新配方(空,空,空,['成分中含有糖'],'bla',空,空);
var r1New=新配方(null,null,null,['成分中含有枫糖'],'bla',null,null);
var r2=新配方(空,空,空,['含有纯成分'],'bla',空,空);
变量inList=[r1,r2];
var-outList=[r1New,r2];
expect(过滤器(inList),等于(outList));
}));
此输出导致测试失败:

测试失败:捕获预期:[配方实例,'配方'实例]
实际:[配方实例,'配方'实例]
Which:不是在位置[0]
我试图修改“categoryFilter”的现有测试以使其失败,但得到了相同的、毫无帮助的输出


有没有办法使两个对象的比较结果更有意义

当您比较两个包含不同对象的列表时,您希望看到什么? 它们是否应该相等,因为每个列表包含两个Receipe实例? 什么是
filter()

两个列表只有在相同列表时才相等:

expect(inList,equals(inList));
您可以使用诸如
everylement
orderedEquals
unorderedEquals
之类的匹配器来比较列表的内容。但是,如果将不同的实例放入列表中,即使它们属于同一类,比较仍然会失败

如果希望比较的行为有所不同,则必须重写
Receipe
类的
equals()
方法(这还需要重写
get hashCode

您可以重写Receipe中的
toString()
方法,以获得更好的错误消息,例如将某些字段的值添加到输出字符串中

@覆盖
字符串toString()=>'${super.toString()}${name}';//但我不知道Receipe类是否有名称字段