Avatar ·

Rust में यूनिट-टेस्ट कैसे लिखें जो जाँचे कि panic हुआ?

सभी को नमस्ते! मैंने अभी Rust सीखना शुरू किया है और टेस्ट लिखने की कोशिश कर रहा हूँ। मेरे पास एक फंक्शन है जो कुछ शर्तों पर panic! करना चाहिए। उदाहरण के लिए, मैंने एक सरल डिवीज़न फंक्शन लिखा है जो शून्य से भाग देने पर panic करता है: ```rust fn divide(a: i32, b: i32) -> i32 { if b == 0 { panic!("division by zero"); } a / b } ``` अब मैं एक यूनिट-टेस्ट लिखना चाहता हूँ जो जाँचे कि `divide(10, 0)` कॉल करने पर वास्तव में panic होता है। लेकिन मुझे समझ नहीं आ रहा कि इसे सही तरीके से कैसे करूँ। अगर मैं बस यह लिखूँ: ```rust #[test] fn test_divide_by_zero() { divide(10, 0); } ``` तो टेस्ट बस एरर के साथ फेल हो जाएगा, और cargo test FAILED दिखाएगा। यह वह नहीं है जो मुझे चाहिए — मैं चाहता हूँ कि टेस्ट सफल माना जाए अगर panic हुआ, और फेल माना जाए अगर panic नहीं हुआ। मैंने सुना है कि Rust में एक `#[should_panic]` एट्रीब्यूट है, लेकिन मुझे यकीन नहीं है कि इसका उपयोग कैसे करूँ। साथ ही, मुझे यह भी जानना है: क्या मैं सिर्फ panic के तथ्य की जाँच नहीं कर सकता, बल्कि इसके संदेश की भी जाँच कर सकता हूँ?