Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

g3-yaml: 为value/net/tcp.rs添加单元测试 #605

Open
zh-jq-b opened this issue Mar 12, 2025 · 0 comments
Open

g3-yaml: 为value/net/tcp.rs添加单元测试 #605

zh-jq-b opened this issue Mar 12, 2025 · 0 comments
Labels
good first issue Good for newcomers

Comments

@zh-jq-b
Copy link
Member

zh-jq-b commented Mar 12, 2025

任务描述

当前 lib/g3-yaml/src/value/net/tcp.rs 文件中包含了多个用于解析 YAML 配置为 TCP 相关配置对象的函数,如 as_tcp_listen_configas_tcp_connect_config 等。为了确保这些函数的正确性和健壮性,需要为这些函数添加单元测试。

具体要求

  1. tcp.rs 文件中的每个 as_*_config 函数编写至少一个单元测试,验证函数在正常输入下的行为。
  2. set_tcp_listen_scale 函数编写单元测试,验证其在不同输入类型(如字符串、整数、实数)下的行为。
  3. 对于每个单元测试,需要考虑以下情况:
    • 正常输入:验证函数是否能够正确解析输入的 YAML 数据并返回预期的配置对象。
    • 异常输入:验证函数是否能够正确处理无效的 YAML 数据,并返回合适的错误信息。
  4. 使用 Rust 的标准测试框架 #[test] 编写单元测试。
  5. 将单元测试代码添加到本文件的 tests 模块,并确保测试代码能够被 cargo test 识别和运行。

示例代码(AI生成)

以下是一个简单的单元测试示例,用于验证 as_tcp_listen_config 函数在整数输入下的行为:

#[cfg(test)]
mod tests {
    use super::*;
    use yaml_rust::YamlLoader;

    #[test]
    fn test_as_tcp_listen_config_integer() {
        let yaml_str = "8080";
        let docs = YamlLoader::load_from_str(yaml_str).unwrap();
        let yaml = &docs[0];

        let result = as_tcp_listen_config(yaml);
        assert!(result.is_ok());

        let config = result.unwrap();
        assert_eq!(config.port(), Some(8080));
    }
}

参考资料

@zh-jq-b zh-jq-b added the good first issue Good for newcomers label Mar 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

1 participant