如何使用 boost::test 设置 c++ 龟模拟库?
Posted
技术标签:
【中文标题】如何使用 boost::test 设置 c++ 龟模拟库?【英文标题】:How to set up c++ turtle mock library with boost::test? 【发布时间】:2014-10-21 12:31:44 【问题描述】:我正在尝试使用 boost::test 框架设置 turtle-mock 库。
我不知道该怎么做,文档中也没有提及...
我试图简单地将库源复制到 boost/include 中。 我还尝试将 turtle 目录复制到我的项目中,然后添加指向 turtle 文件夹的 CMake INCLUDE_DIRECTORIES 指令。
我只是试图包括海龟...
#define BOOST_TEST_MAIN
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>
#include <boost/turtle/mock.hpp>
然后我得到了这个错误:
In file included from /home/ferdi/boost/include/boost/turtle/detail/function.hpp:97:0,
from /home/ferdi/boost/include/boost/turtle/detail/functor.hpp:13,
from /home/ferdi/boost/include/boost/turtle/reset.hpp:15,
from /home/ferdi/boost/include/boost/turtle/mock.hpp:14,
from /home/ferdi/inesm/test/Test.hpp:7,
from /home/ferdi/inesm/test/lib/inesm/component/note/TestNote.cpp:6:
/home/ferdi/boost/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:52:37: fatal error: turtle/detail/function_iterate.hpp: Aucun fichier ou dossier de ce type
# include BOOST_PP_FILENAME_1
(“Aucun fichier ou dossier de ce type”表示“没有该类型的文件或目录”)
这是什么意思? 我该怎么办?
谢谢!
【问题讨论】:
【参考方案1】:来自the documentation 的典型用法是
#define BOOST_AUTO_TEST_MAIN
#include <boost/test/auto_unit_test.hpp>
#include <turtle/mock.hpp>
或根据您的用例进行调整
#define BOOST_TEST_MAIN
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>
#include <turtle/mock.hpp>
所以没有升压/当包括海龟时。
我不认为你应该将turtle移到boost中,而是将它分开并添加一个CMake包含目录,就像你所指的那样(但到turtle的父目录)。
如果您坚持将turtle 与boost 合并,您可以尝试使用turtle 的“boostified”版本,即Boost.Mock。
【讨论】:
有效!谢谢 !一定要在你的 CMakeLists 中包含一个到 turtle 的路径:INCLUDE_DIRECTORIES(lib/turtle/include/) !以上是关于如何使用 boost::test 设置 c++ 龟模拟库?的主要内容,如果未能解决你的问题,请参考以下文章
C++ 单元测试框架 Boost Test BOOST_AUTO_TEST_CASE
带有 CLion 的 Boost.TEST:“测试框架意外退出”