googletest

    4热度

    1回答

    我有一个类Foo存储指向回调的指针。回调可以用方法InvokeCallback()调用。 void* SomeCallback(void* a) { return (void*)(*(int*)a + 10); } class Foo { public: typedef void* (*CallbackFunction)(void*); SetCa

    2热度

    1回答

    创建我有这样一群指针参数 - >元素添加/删除,用代码snippt: // production code: Group::add(Element* e) {...}; Group::remove(Element* e) {...}; ElementDerived::ElementDerived(Group* group){ group->add(this);} ElementDerive

    0热度

    1回答

    我有一个NDK共享库,我想对它做一些测试。我目前使用googletest创建链接到库的本机可执行文件,然后按照README.NDK中的说明操作。虚拟可执行文件可以在Android模拟器上运行。好。 现在,棘手的事情是,共享库调用了大量的JNIEnv的实例的功能,例如: env-> NewStringUTF() ... 问题是,Android本机可执行文件如何获得JNIEnv的实例? 一种方法是使用

    3热度

    2回答

    如果一个接口有一个函数来创建一个删除copy-ctor的对象,如何模拟这个函数? Gmock似乎在内部使用对象的拷贝构造函数。 E.g. // The object with deleted copy-ctor and copy-assignment class TTest { public: TTest() = delete; TTest(const TTest&) =

    1热度

    1回答

    我试图从源代码编译GTEST(而不是使用现有安装的版本)。我正在开发一个基于catkin的cmake项目。 我已经加入从https://github.com/google/googletest的源代码,以我的工作区,并附带add_subdirectory的文件夹。 不过,我得到与现有GTEST一个nameclash: CMake Error at src/test_env/GTest/google

    2热度

    1回答

    我想检查一个向量在gtest中是否为空,但我想更多地了解如何检查匹配器的否定。 我通常ckeck大小大于零 EXPECT_THAT(vector.size(), Gt(0)); ,我知道我可以写我自己的匹配 MATCHER(IsNotEmpty, !negation ? "isn't empty" : "is empty") { if (!arg.empty()) { return

    0热度

    1回答

    我正在用谷歌单元测试在C++中制作单元测试系统。而且我注意到,我所有的单元测试都包含相同的行,并且所有的眼泪都包含其他行,相当于所有行。 我想知道是否有任何方法可以在实际设置任何单元测试之前默认创建一个设置。 #include <gtest.h> class TestExample : ::testing::Test { public: virtual void SetU

    3热度

    1回答

    我正在使用GoogleTest(GTest)框架与Qt5应用程序一起使用。 每当使用QString参数进行测试失败时,框架会尝试打印所有涉及的值。但是,它不能自动处理外部类型(在这种情况下,Qt5的QString)。 QString test = "Test"; ASSERT_EQ(test, "Value"); 我怎样才能得到GoogleTest自动打印出更漂亮将QString(=无需手动

    1热度

    2回答

    我有许多子项目的项目,其中之一是谷歌测试项目。 每次构建主项目时,我都必须将Google测试库构建为共享库,但单独构建Google测试的共享方式是设置全局选项“BUILD_SHARED_LIBS=ON”。不幸的是,其他项目都依赖于这个选项。那么,在这种情况下如何建立谷歌测试共享库? 我试图取代 cxx_library(gtest "${cxx_strict}" src/gtest-all.cc)

    0热度

    2回答

    我正在尝试使用链接器开关“/ entry”为visual C++可执行文件提供自己的入口点。相关的Microsoft文档详细介绍了如何在dll中手动初始化c运行时,但我无法掌握如何在我的exe中初始化它。我得到的最好的结果是我需要调用_CRT_init,但我不知道这是一个函数还是一个宏,或者它可能定义的位置,并且Visual Studio(和msbuild)不能识别标识符,所以那里没有提示。 这里