2011-07-20 90 views

回答

7

我最近为我的最新项目搜索了单元测试和嘲笑框架,并用Google Mock进行了搜索。它有最好的文档,看起来相当有特色(尽管我还没有创建非常复杂的模拟对象)。我最初想到的是使用boost::test,但最终却使用了Google Test(我认为这是Google Mock的先决条件,即使您使用其他测试框架)。它也有很好的文档,并且具有我期望的大部分功能。

2

GoogleMock有关于使用another framework的章节。

+0

事实上,它仍然存在内存泄漏并且需要解决方法:http://stackoverflow.com/questions/38890959/initgooglemock-causes-memory-leak-with-boosttest?noredirect=1#comment65142935_38890959 – Ioanna

6

您可以试试Turtle

+0

什么是龟的优点? –

+0

那么,它很容易与boost :: test集成:例如,您不需要使用gmock来完成boost :: test项目所需的所有解决方法(另请参阅http://stackoverflow.com/questions/38890959/initgooglemock-原因存储器泄漏与 - boosttest?noredirect = 1#comment65142935_38890959)。 – Ioanna

6

Here你有一个使用Google Mock和Boost Test的例子。我更喜欢Boost Test,因为我经常使用其他Boost libraries

7

Fake-It是一个简单的模拟框架,用于C++使用最新的C++ 11功能来创建一个表达(但非常简单)的API。 使用FakeIt,不需要重新声明方法,也不需要为每个模拟创建派生类,并且它具有内置的boost :: test集成。 这里是你如何假它:

struct SomeInterface { 
    virtual int foo(int) = 0; 
}; 

// That's all you have to do to create a mock. 
Mock<SomeInterface> mock; 

// Stub method mock.foo(any argument) to return 1. 
When(Method(mock,foo)).Return(1); 

// Fetch the SomeInterface instance from the mock. 
SomeInterface &i = mock.get(); 

// Will print "1" 
cout << i.foo(10); 

还有更多的功能,以探索。继续和give it a try