ein*_*ica 7 c++ unit-testing temporary-files c++11
我正在写一个库。在我的一个单元测试中,我想创建一个临时文件,进行一些涉及该文件的库调用,并在退出时删除该文件(成功、失败和异常 - 清理很重要!)。
十多年前,有人问:如何在 C++ 中创建临时文本文件?。但是 - 答案要么是不可移植的,要么不是一个正确的完整解决方案(例如,您得到一个文件描述符,但没有明显的方式来获取名称,因此您无法按名称访问文件(std::tmpfile);您得到一个名称( std::tmpnam) 但不能确定它尚未使用;等等。)如果这个问题得到解决,我想我的问题将由围绕其中一些调用的一些 RAII 包装器来回答。但是 - 我关心当前的现实。
我的库必须可与 C++11 一起使用,因此如果可能的话,我更喜欢 C++11 解决方案。使用 Boost 是可以接受的,但不可取。