gpt4 book ai didi

rust - 通过替换标准输出来测试标准输出

转载 作者:行者123 更新时间:2023-11-29 07:53:35 25 4
gpt4 key购买 nike

<分区>

我的目标是测试进入标准输出的函数的输出。到目前为止,我最好的尝试是在测试中用字符串替换流。

到目前为止,这是我设法实现的目标:

use std::io;
use std::fmt;

fn hello(stdout: &mut std::fmt::Write) {
writeln!(stdout, "Hello world");
}

#[test]
fn hello_test() {
let mut stdout = String::new();

// pass fake stdout when calling when testing
hello(&mut stdout);

assert_eq!(stdout, "Hello world\n".to_string());
}

fn main() {
// pass real stdout when calling from main

hello(&mut io::stdout());
}

测试有效,但不幸的是 io::stdout() 没有实现 fmt::Write 特性。

在 Rust 中测试写入标准输出的函数的最佳解决方案是什么?有没有办法用字符串修复我的解决方案,或者我应该寻找替代方案?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com