如果最后一行不相等则追加

时间:2018-02-26 05:57:05

标签: c++ file unit-testing stream

我想编写一个执行此操作的函数:给定文件和名称(字符串),如果最后一行不是' name',则附加到文件中。 (如果文件不存在,则创建文件)。否则就什么也不做。我当然可以创建一个这样的函数:

appendIfLastLineNotEqual(file fd, string name) { ... }

但是,在转储到文件时,单元测试很难编写。有没有更简洁的方法来做到这一点,以及易于单元测试?我也可以向后执行文件解析等来实现该功能。任何聪明的方式而不是阅读文件,与最后一行比较等?谢谢!

1 个答案:

答案 0 :(得分:1)

如果您可以使用stream作为函数的输入参数,那么您的代码将适用于您提供的任何流。

您可以在生产代码中使用std::fstream作为输入,而是使用std::sstream甚至在单元测试代码中创建自己的流模型。