在测试中看到' wasm_bindgen::JsError '的内容



我正在为这样的函数编写一个单元测试,它编译得很好:

#[wasm_bindgen]
pub fn my_fn(params_js: JsValue) -> Result<JsValue, JsError> {
// ...
}

但是在我的测试中,如果对my_fn的调用失败,我无法看到有关错误的任何详细信息。

#[wasm_bindgen_test]
pub fn my_test() {
// ...
let js_return = my_fn(params).unwrap();
// ...
}

JsError不能使用{:?}格式化,因为它不实现Debug

我甚至试过格式化消息:

let js_return = my_fn(params)
.map_err(|err| format!("Failed to get setting: {}", err))
.unwrap();

JsError无法使用默认格式化程序进行格式化

在测试中调用绑定函数时,我们如何从JsError错误结果中获得有用的东西?

我看到有一个实现将JsError转换为JsValue,实现Debug。因此,您可能会得到一个合理的错误消息:

let js_return = my_fn(params)
.map_err(JsValue::from)
.unwrap();

相关内容

  • 没有找到相关文章

最新更新