Ich habe eine Rust-Funktion, die panicunter bestimmten Bedingungen funktioniert, und ich möchte einen Testfall schreiben, um zu überprüfen, ob die Funktion in Panik gerät oder nicht. Ich konnte nichts außer den Makros assert!und finden assert_eq!. Gibt es einen Mechanismus, um dies zu testen?
Ich könnte eine neue Aufgabe erzeugen und prüfen, ob diese Aufgabe in Panik gerät oder nicht. Macht das Sinn?
Die Rücksendung von a Result<T, E>ist in meinem Fall nicht geeignet.
Ich möchte Addeinem MatrixTyp, den ich implementiere , Unterstützung für das Merkmal hinzufügen . Die ideale Syntax für eine solche Addition würde folgendermaßen aussehen:
let m = m1 + m2 + m3;
wo m1, m2, m3sind alle Matrizen. Daher sollte der Ergebnistyp von addsein Matrix. So etwas wäre zu kryptisch:
let m = ((m1 + m2).unwrap() + m3).unwrap()
Gleichzeitig muss die add()Funktion überprüfen, ob die beiden hinzugefügten Matrizen dieselbe Dimension haben. Daher add()muss in Panik geraten, wenn die Abmessungen nicht übereinstimmen. Die verfügbare Option ist panic!().
#[should_panic(expected = "assertion failed")]