Avatar ·

Comment écrire un test unitaire en Rust qui vérifie qu'une panique (panic) s'est produite ?

Bonjour à tous ! Je viens de commencer à apprendre Rust et j'essaie de maîtriser l'écriture de tests. J'ai une fonction qui, dans certaines conditions, doit déclencher une panique (panic!). Par exemple, j'ai écrit une simple fonction de division qui panique lors d'une division par zéro : ```rust fn divide(a: i32, b: i32) -> i32 { if b == 0 { panic!("division by zero"); } a / b } ``` Maintenant, je veux écrire un test unitaire qui vérifie que l'appel à `divide(10, 0)` provoque bien une panique. Mais je ne comprends pas comment faire correctement. Si j'écris simplement : ```rust #[test] fn test_divide_by_zero() { divide(10, 0); } ``` le test échouera avec une erreur, et cargo test affichera FAILED. Ce n'est pas ce que je veux — je souhaite que le test soit considéré comme réussi si la panique se produit, et échoué s'il n'y a pas de panique. J'ai entendu dire qu'il existe un attribut `#[should_panic]` en Rust, mais je ne suis pas sûr de comment l'utiliser. Je me demande aussi : peut-on vérifier non seulement le fait de la panique, mais aussi son message ?