2 个不稳定版本

使用旧的 Rust 2015

0.2.0 2019年6月24日
0.1.0 2018年3月24日

#17 in #http-interface

MIT 许可证

16KB
345

Build Status

Current Crates.io Version

interface-tests-helpers

Rust 中 HTTP 接口测试的程序

目录

开发

构建开发容器。

vagrant up

连接到开发容器。

vagrant ssh

生成文档

cargo rustdoc -- --document-private-items

使用方法

Cargo.toml

[dev-dependencies]
interface-tests-helpers = "*"
extern crate interface_tests_helpers;

use interface_tests_helpers::{
    ClientHandler,
    ResponseHandler,
    HasBaseUrl,
};

use reqwest::{
    Client,
    Response,
};

use std::collections::HashMap;

impl HasBaseUrl for Client {

    /// Returns the service base URL.
    ///
    /// # Returns:
    ///
    /// the service base URL.
    fn get_base_url(&self) -> &str {
        "https://127.0.0.1:1234"
    }
}

trait ResourceHandler {

    fn post_resource(&self, json: &HashMap<&str, &str>) -> Response;
}

impl ResourceHandler for Client {

    /// Example of "per resource implementation" method.
    ///
    /// # Arguments:
    ///
    /// `json` - the json data to send
    fn post_resource(
        &self,
        json: &HashMap<&str, &str>,
    ) -> Response {

        return self.post_json(
            "/resource",
            json,
        );
    }
}

#[test]
fn test_post_resource() {

    let mut json: HashMap<&str, &str> = HashMap::new();
    json.insert("key", "value");

    let client = Client::new();
    let response = client.post_resource(&json);

    response.assert_201();
}

测试

只能使用一个线程

cargo test -- --test-threads=1

依赖项

~19MB
~423K SLoC