Boost::test and mocking framework [closed]
Asked Answered
S

6

10

I am using boost::test and need to use a mocking framework with it. Does anyone have any recommendations?

Sikora answered 20/7, 2011 at 9:15 Comment(0)
C
9

I recently did a search for unit testing and mocking frameworks for my latest project and went with Google Mock. It had the best documentation and seems fairly well featured (although I haven't created very complex mock objects yet). I initially was thinking of using boost::test but ended up using Google Test instead (I think it's a prerequisite for Google Mock, even if you use another testing framework). It also has good documentation and has had most of the features I expected.

Clevelandclevenger answered 20/7, 2011 at 9:30 Comment(0)
M
13

Fake-It is a simple mocking framework for C++ uses the latest C++11 features to create an expressive (yet very simple) API. With FakeIt there is no need for re-declaring methods nor creating a derived class for each mock and it has a built-in boost::test integration. Here is how you Fake-It:

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);

There are many more features to explore. Go ahead and give it a try.

Metzger answered 9/5, 2015 at 17:0 Comment(0)
C
9

I recently did a search for unit testing and mocking frameworks for my latest project and went with Google Mock. It had the best documentation and seems fairly well featured (although I haven't created very complex mock objects yet). I initially was thinking of using boost::test but ended up using Google Test instead (I think it's a prerequisite for Google Mock, even if you use another testing framework). It also has good documentation and has had most of the features I expected.

Clevelandclevenger answered 20/7, 2011 at 9:30 Comment(0)
F
6

You can try Turtle !

Feint answered 1/10, 2011 at 19:6 Comment(3)
What are the advantages to Turtle?Hinojosa
Well, it's easily integrated with boost::test: you won't need all the workarounds that are required to make a boost::test project use gmock, for example (see also #38891459).Oxytetracycline
Turtle's documentation is terse to the point of being null. I don't think it is an advantage. Turtle is hard to use.Reclamation
C
6

Here you've got an example of using Google Mock with Boost Test. I prefer Boost Test because I use other Boost libraries often.

Collation answered 21/2, 2012 at 19:17 Comment(0)
M
2

GoogleMock has a section on using with another framework.

Manvil answered 20/7, 2011 at 9:25 Comment(2)
Indeed, but it is still memory-leak-prone and requires workarounds: #38891459Oxytetracycline
The link is deadDiapophysis
T
0

ELFSpy let's you replace (mock) functions, methods, virtual functions etc with alternate implementations at runtime.

https://github.com/mollismerx/elfspy/wiki

Tongue answered 23/11, 2018 at 21:15 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.