我确信这是一个简单的语法问题,但是......
为什么这个测试会抛出异常? 我预计它只会在找不到匹配项时抛出异常。
solo_test( "", (){
List<String> lines = ["aa=1", "bb=2" ,"cc=3"];
String line = lines.firstWhere((String line) => line.indexOf("bb") == 0, orElse: throw "could not find 'bb'");
expect( line, equals( "bb=2"));
});
答案 0 :(得分:3)
应该是
solo_test( "", (){
List<String> lines = ["aa=1", "bb=2" ,"cc=3"];
String line = lines.firstWhere((String line) => line.indexOf("bb") == 0, orElse: () => throw "could not find 'bb'");
expect( line, equals( "bb=2"));
});
答案 1 :(得分:1)
使用此行
(String line) => line.indexOf("bb") == 0
找到第二个元素,因此不执行orElse
。
正如@Robert所说,你需要添加() =>