我正在为这样的函数编写一个单元测试,它编译得很好:
#[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();