You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在std::string中硬编码CSV等小文件内容用于单元测试对比

你当前的写法会引入额外的前导换行、每行缩进空格,和实际CSV内容不一致,才会导致匹配失败,正确硬编码方式如下:

方案1:C++原始字符串字面量(推荐)

原始字符串字面量会完全保留括号内的所有字符,只需保证括号内内容和预期CSV完全一致,不要额外添加缩进、前导/后置换行即可:

const std::string expected_csv_content = R"(Column1, Column2, Column3, Column4, Column5 
something, false, somemore, 1.010000, 1.020000
)";

如果待嵌入的内容本身包含)字符,会和结束标记冲突,可以自定义分隔符避免冲突:

// 分隔符可自定义,只要内容中不存在")MY_DELIM"即可
const std::string expected_csv_content = R"MY_DELIM(Column1, Column2, Column3, Column4, Column5 
something, false, somemore, 1.010000, 1.020000
)MY_DELIM";

方案2:普通字符串拼接

如果不使用原始字符串,也可以通过普通字符串字面量自动拼接的特性实现,手动添加换行转义符\n即可:

const std::string expected_csv_content = 
    "Column1, Column2, Column3, Column4, Column5 \n"
    "something, false, somemore, 1.010000, 1.020000\n";

如果要嵌入的文件内容较大,不想手动复制,也可以在编译阶段直接把文件嵌入二进制:比如使用GCC/Clang的ld命令将文件转为目标文件,链接到程序后直接读取对应符号的内容即可,单元测试场景下小文件直接硬编码更便捷。

内容的提问来源于stack exchange,提问作者TheWaterProgrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:36:04