什么是模拟对象?你能解释一下这个概念吗?如何在C ++中使用Mock对象?任何源代码示例都非常有用。
答案 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。