如何使用 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++ 搜索头文件的目录

C++ 单元测试框架 Boost Test BOOST_AUTO_TEST_CASE

带有 CLion 的 Boost.TEST:“测试框架意外退出”

如何在 mingw64 上使用 boost.test 构建测试?

如何使用计算的龟拥有变量A来计算不同的龟拥有变量B.

使用海龟模拟来模拟对象以进行 boost::test