Rust 新手(学习不到 7 天),在所有权规则之后我试图克服的第二个障碍是异步/等待。
我正在编写一个调用函数的测试,我需要在不使用关键字的情况下async
从中获取结果。Future
await
我看过async_test
,但是我不能使用它,因为(据我所知)这需要我的方法中的tokio
运行时和#[tokio_main]
属性main
- 但我main
已经用#[actix_rt::main]
这是我的测试
#[test]
pub fn test_get_item() -> Result<(), anyhow::Error> {
let c = SomeClient::new();
let result = c.get_item(123456).await?; // <- this is not allowed
assert_eq!("Hello", result.title);
assert_eq!("https://example.com", result.url.as_str());
Ok(())
}
我尝试过但失败的事情(主要是由于我缺乏 Rust 知识)
- 在使用futures-await-test crate
async_test
的 actix Web 项目中使用。 - 在 reddit 中阅读此主题。
- 遵循这个rust 社区线程中的几个示例
- 尝试
poll()
了未来,但它并没有把我带到任何地方。
我不明白为什么这必须如此复杂,也许某处有一个简单的功能(如wait()
或) ?get_result()
Future
谢谢你的帮助。