17 次重大发布
0.48.0 | 2022年4月25日 |
---|---|
0.47.0 | 2021年6月30日 |
0.46.0 | 2021年1月6日 |
0.45.0 | 2020年7月22日 |
0.25.0 | 2017年6月25日 |
#213 in 测试
9,453 每月下载量
用于 不到 227 crates
105KB
2.5K SLoC
为 Rusoto AWS 服务客户端进行单元测试的模拟请求分发器和凭证
所有由 rusoto 生成的服务客户端都附带一个名为 new_with
的构造函数,它接受三个参数
- A
rusoto_core::DispatchSignedRequest
实现 - A
rusoto_core::credential::ProvideAwsCredentials
实现 - A
rusoto_core::Region
此crate提供满足前两个的模拟实现。
示例
以下是对 rusoto_s3
crate 的示例,但应该适用于所有服务crate。代码被注释掉以供说明,同时也避免了在此crate中产生循环依赖。
extern crate rusoto_mock;
// extern crate rusoto_s3;
use rusoto_mock::{MockCredentialsProvider, MockRequestDispatcher, MockResponseReader};
fn main() {
// let s3 = rusoto_s3::S3Client::new_with(
// MockRequestDispatcher::default().with_body(
// MockResponseReader::read_response("test-data", "s3-response.json")
// ),
// MockCredentialsProvider,
// Default::default()
// );
}
有关基于XML的AWS服务的说明
一些AWS服务(如SQS和STS)返回XML格式的响应,而不是JSON。
在这种情况下,解析可能会因为 ParseError("Expected StartElement got None")
而失败。
有效的XML示例可以在API文档中找到,例如 STS AssumeRole 的这个示例。
可以像这样创建一个 MockRequestDispatcher
MockRequestDispatcher::default().with_body(r#"
<AssumeRoleResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
... etc
</AssumeRoleResponse>
"#)
依赖项
~9–23MB
~327K SLoC