Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

in short, throwsA(anything) does not suffice for me while unit testing in dart. How to I test for a specific error message or type?

Here is the error I would like to catch:

class MyCustErr implements Exception {
  String term;

  String errMsg() => 'You have already added a container with the id 
  $term. Duplicates are not allowed';

  MyCustErr({this.term});
}

here is the current assertion that passes, but would like to check for the error type above:

expect(() => operations.lookupOrderDetails(), throwsA(anything));

This is what I want to do:

expect(() => operations.lookupOrderDetails(), throwsA(MyCustErr));

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
2.1k views
Welcome To Ask or Share your Answers For Others

1 Answer

This should do what you want:

expect(() => operations.lookupOrderDetails(), throwsA(isA<MyCustErr>()));

if you just want to check for exception check this answer:


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...