我想编写一个执行此操作的函数:给定文件和名称(字符串),如果最后一行不是' name',则附加到文件中。 (如果文件不存在,则创建文件)。否则就什么也不做。我当然可以创建一个这样的函数:
appendIfLastLineNotEqual(file fd, string name) { ... }
但是,在转储到文件时,单元测试很难编写。有没有更简洁的方法来做到这一点,以及易于单元测试?我也可以向后执行文件解析等来实现该功能。任何聪明的方式而不是阅读文件,与最后一行比较等?谢谢!
答案 0 :(得分:1)
如果您可以使用stream作为函数的输入参数,那么您的代码将适用于您提供的任何流。
您可以在生产代码中使用std::fstream
作为输入,而是使用std::sstream
甚至在单元测试代码中创建自己的流模型。