< 返回版块

odd-cat 发表于 2021-12-28 20:42

Tags:rust,日报,httpmock,irust,anyhow,rust-REPL

在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

[dependencies]

secp256k1 = {version = "0.20.3", features = ["rand"]}
anyhow = "1.0.47"

示例

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 REPL汇总

Options for Rust REPL that's easy to install

  • evcxr: 一个Rust REPL执行环境;
  • IRust: 跨平台Rust REPL;

From 日报小组 odd-cat

社区学习交流平台订阅:

Rust.cc 论坛: 支持 rss

微信公众号:Rust 语言中文社区

评论区

写评论

还没有评论

1 共 0 条评论, 1 页