目前我正在开发一个模块,该模块读取目录,查找文件名中具有特定模式的文件。我正在使用boost :: filesystem。 我一直在想,有一些模仿文件系统而不直接与它交互的东西是个好主意,除非它是生产代码。
我找到了这个链接: http://user.xmission.com/~legalize/boost.test/libs/test/doc/html/test/guide/testing_file_io.html 看起来很棒,但当我尝试使用此代码时。我发现如果没有更多文件,调用next()可能会抛出。我不确定这样的代码是否被视为一种好的做法:
std::vector<std::string> results;
try
{
std::string s = directory_scanner.next;
if (s.find("some_pattern")
results.push_back(s);
}
catch(...){hmm now what?}
这看起来像是一个通用的解决方案,所以我对此感兴趣。 但也许现在在2016年完全错误了:))
也许最好在目录扫描程序中使用虚拟方法'get_interesting_files'并将其注入需要进行单元测试的对象?