【Rust日报】2021-12-28 在Rust中模拟HTTP服务

2021-12-31 11:09:57 浏览数 (1)

在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;

0 人点赞