buildRationale method
Subclasses may override to customize the rationale produced on failure; default joins all failed assertion descriptions.
Implementation
String? buildRationale(List<Assertion> assertions) {
final failed = assertions.where((a) => !a.passed).toList();
if (failed.isEmpty) return null;
return failed.map((a) => '- ${a.description}').join('\n');
}