用C ++模拟对象

时间:2010-09-28 03:36:25

标签: c++ unit-testing

什么是模拟对象?你能解释一下这个概念吗?如何在C ++中使用Mock对象?任何源代码示例都非常有用。

4 个答案:

答案 0 :(得分:2)

阅读mockcpp,您将找到问题的答案。模拟非常适合测试目的,您可以专注于测试一件事并模拟环境中其他部分的行为。

答案 1 :(得分:2)

通常,模拟对象指的是一个类的实例,其名称为“模拟”原始类的功能。在对接口进行编码时通常会简化这一过程,因此在测试依赖于接口的组件时,只需实现接口即可返回执行测试所需的结果。

您可以在此处找到更多信息,包括用于测试的不同类型的模拟:

我希望这会有所帮助。

谢谢, 达米安

答案 2 :(得分:1)

Google Mock是一个用于模拟被单元测试的类的依赖关系的框架。该网站还包含一个好的introduction

答案 3 :(得分:1)

Fake-It是一个简单的C ++模拟框架。 FakeIt使用最新的C ++ 11功能来创建一个富有表现力(但非常简单)的API。 使用FakeIt,不需要重新声明方法,也不需要为每个模拟创建派生类。 这是你假装的方式:

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