Como escrever um teste unitário em Rust que verifica se ocorreu um panic?
Olá a todos! Comecei a aprender Rust e estou tentando dominar a escrita de testes. Tenho uma função que, sob certas condições, deve causar um panic!. Por exemplo, escrevi uma função simples de divisão que entra em panic ao dividir por zero:
```rust
fn divide(a: i32, b: i32) -> i32 {
if b == 0 {
panic!("division by zero");
}
a / b
}
```
Agora quero escrever um teste unitário que verifique se ao chamar `divide(10, 0)` realmente ocorre um panic. Mas não entendo como fazer isso corretamente. Se eu simplesmente escrever:
```rust
#[test]
fn test_divide_by_zero() {
divide(10, 0);
}
```
então o teste simplesmente falhará com um erro, e cargo test mostrará FAILED. Não é isso que preciso — quero que o teste seja considerado bem-sucedido se o panic ocorrer, e falho se não houver panic.
Ouvi dizer que existe um atributo `#[should_panic]` em Rust, mas não tenho certeza de como usá-lo. Também estou curioso: é possível verificar não apenas o fato do panic, mas também sua mensagem?