gpt4 book ai didi

unit-testing - 如何编写 Rust 单元测试以确保发生 panic ?

转载 作者:行者123 更新时间:2023-11-29 07:40:05 27 4
gpt4 key购买 nike

我有一个 Rust 函数 panic在某些情况下,我希望编写一个测试用例来验证该函数是否发生 panic 。除了 assert!,我找不到任何东西和 assert_eq!宏。是否有某种机制可以对此进行测试?

我可以生成一个新任务并检查该任务是否崩溃。是否有意义?


返回 Result<T, E>不适合我的情况。

我希望添加对 Add 的支持Matrix 的特征我正在实现的类型。这种添加的理想语法如下:

let m = m1 + m2 + m3;

哪里m1 , m2 , m3都是矩阵。因此,add 的结果类型应该是 Matrix .像下面这样的东西太神秘了:

let m = ((m1 + m2).unwrap() + m3).unwrap()

同时,add()函数需要验证添加的两个矩阵是否具有相同的维度。因此,add()如果尺寸不匹配,需要 panic 。可用选项是 panic!() .

最佳答案

你可以在testing中找到答案Rust 书的一部分。更具体地说,您需要 #[should_panic] 属性:

#[test]
#[should_panic]
fn test_invalid_matrices_multiplication() {
let m1 = Matrix::new(3, 4); // assume these are dimensions
let m2 = Matrix::new(5, 6);
m1 * m2
}

关于unit-testing - 如何编写 Rust 单元测试以确保发生 panic ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26469715/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com