#testing #couch-db

couch_rs_test

使用couch_rs库实现的CouchDB存储库测试工具

2个版本

0.2.1 2023年1月15日
0.2.0 2022年12月27日

#1991 in 数据库接口

MIT 许可证

11KB
114

couch_rs_test

使用couch_rs库实现的CouchDB存储库测试工具


lib.rs:

一组用于使用couch_rs库执行测试的辅助函数

通过在CouchDB实例中自动创建和销毁测试数据库,允许轻松执行测试。对于给定的数据库名称,创建的数据库将附加一个随机字符串,以确保同一CouchDB实例中并行执行的多个测试的唯一性。

use serde_json::json;
use couch_rs_test::{TestRepo, TestRepoConfig};

async fn new_database(
    config_uri: &str,
    config_username: &str,
    config_password: &str,
    config_dbname: &str,
) -> TestRepo {

    let repo: TestRepo = match TestRepo::new(
        TestRepoConfig::new(
            config_uri,
            config_username,
            config_password,
            config_dbname,
        )
    ).await {
        Ok(r) => r,
        // if db creation fails, test will fail, so just panic
        Err(e) => panic!("Failed to create test database: {}", e), 
    };

    // write test data into the newly created database
    let data = &mut vec!{
        json!{{"some": "data"}},
        json!{{"some": "other-data"}}
    };

    match repo.with_data(data).await {
        Ok(cnt) => log::info!("Added {} entries to test database {}", cnt, repo.db.name()),
        Err(e) => panic!("Failed to set up database: {}", e),
    };
    repo
}

依赖关系

~7–22MB
~300K SLoC