【问题标题】:Append if last line not equal如果最后一行不相等,则追加
【发布时间】:2018-08-05 13:00:31
【问题描述】:

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

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

但是,当它转储到文件时,这将很难编写单元测试。有没有更干净的方法来做到这一点,以及易于单元测试?我也可以向后进行文件解析等来实现该功能。有什么聪明的方法而不是读取文件,与最后一行等进行比较?谢谢!

【问题讨论】:

标签: c++ file unit-testing stream


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-03-18
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2020-07-03
    • 2021-02-12
    • 2012-04-12
    相关资源
    最近更新 更多