我们将 cppunit 单元测试构建为 dll 并将其加载到 TestPlugInRunnerd.exe 以显示我们的结果。我们编写自己的模拟,但我想开始使用模拟框架,例如 gmock。
我下载了 gmock 并链接到它,没有太多问题。我已经使用 gmock 编写了一个模拟,它编译得很好。但后来我在 gmock 常见问题解答中阅读了以下内容:
如果您想使用 Google Test 以外的其他东西(例如 CppUnit 或 CxxTest)作为测试框架,只需将上一节中的 main() 函数更改为: int main(int argc, char** argv) { // 以下行导致 Google Mock 在失败时抛出异常, // 这将被您的测试框架解释为测试失败。 ::testing::GTEST_FLAG(throw_on_failure) = true; ::testing::InitGoogleMock(&argc, argv); ...无论您的测试框架需要什么... } 这种方法有一个问题:它使 Google Mock 有时会从模拟对象的析构函数中抛出异常。对于某些编译器,这有时会导致测试程序崩溃。您仍然可以注意到测试失败了,但这不是优雅的失败。
我显然没有主线。我需要做什么才能让 gmock 使用我的 dll?我应该考虑 gmock 的替代品吗?
谢谢,
巴里