在Rust中模拟HTTP服务
Mocking HTTP Services in Rust
本文展示了如何使用mock库来模拟HTTP服务。如何使我们在自动化测试期间验证应用程序发送的HTTP请求是否符合我们的期望,并且还可以模拟来自依赖服务的HTTP响应,以确保我们的应用程序能够相应地处理它们。此外,作者还展示了模拟工具如何在开发过程中替换不可用的HTTP服务,并使它们能够同时被许多应用程序访问。
多功能模拟工具可以在开发生命周期的多个阶段中实用,而不仅仅是集成测试。然而,它们对于增强基于HTTP的API客户端特别有用,并允许我们测试很难复现的边界case。
作者介绍了一些可以做mock的开源库,并做了对比:
Library | Execution | Custom Matchers | Mockable APIs | Sync API | Async API | Stand-alone Mode |
---|---|---|---|---|---|---|
mockito | serial | no | 1 | yes | no | no |
httpmock | parallel | yes | ∞ | yes | yes | yes |
httptest | parallel | yes | ∞ | yes | no | no |
wiremock | parallel | yes | ∞ | no | yes | no |
在Rust中生成区块链密钥对地址
Generate a Blockchain Key Pair Address in Rust
在本教程中,读者将了解如何使用Rust编程语言生成区块链密钥对地址。
依赖:
- Secp256k1: Secp256k1是Pieter Wuille的Secp256k1椭圆曲线的一个实现;
- anyhow: 用来优雅的处理错误;
Cargo.toml
代码语言:javascript复制[dependencies]
secp256k1 = {version = "0.20.3", features = ["rand"]}
anyhow = "1.0.47"
示例
代码语言:javascript复制use secp256k1::{PublicKey, SecretKey, rand::{rngs, SeedableRng}};
use anyhow::Result;
pub fn create_keypair() -> Result<(SecretKey, PublicKey)> {
let secp = secp256k1::Secp256k1::new();
let mut rng = rngs::StdRng::seed_from_u64(6);
Ok(secp.generate_keypair(&mut rng))
}
fn main() -> Result<()>{
let keypair = create_keypair();
println!("{:?}", keypair);
Ok(())
}
// Ok((SecretKey(41455c67b47796b2201ae40ea891faee91131f5d8789160e22127af6215dc1f6), PublicKey(a648d2691a92fbb2cc37b4571fea0323f19765b74128d401869fd338f9767546f757b952ca5719858919c0bc598a014122ecf2dcba3199b404beba0dd59391f8)))
《在Rust中制作游戏》系列教程
现在我们有了一种语言:Rust,一种游戏引擎:Bevy,还有一种类型:Platformer。这一系列文章将是我用这些工具构建一个小型平台游戏之旅的日志。
- 在Rust中制作游戏.第1部分.Bevy和ECS
- 在Rust中制作游戏.第2部分.绘图材料和照相机
- 在Rust中制作游戏.第3部分.地板和重力
- 在Rust中制作游戏.第4部分.跳跃
- 在Rust中制作游戏.第5部分.运动
- 在Rust中制作游戏.第6部分.生成地图
- 更新中...
能快速安装的Rust REPL汇总
Options for Rust REPL that's easy to install
- evcxr: 一个Rust REPL执行环境;
- IRust: 跨平台Rust REPL;