如何用谷歌测试模拟测试中的类中的方法
How to mock methods in class under test with google test
考虑测试中的这个类:
class A
{
public:
bool isTrue();
void doSomething();
};
我想测试doSomething
,它在实现中调用isTrue
。
但我也想设定对isTrue
方法的期望值。谷歌测试有没有一个最佳实践——如何模拟被测试类的方法?
将我的评论转化为答案。。。
有一个小技巧你可以使用。定义这样的派生类:
class B : public A {
public:
MOCK_METHOD0(isTrue, bool());
using A::doSomething;
};
这显然只适用于isTrue
是virtual
的情况。
小心:请查看公司关于"专为测试而制作的代码"的测试指南,而不是测试真正的代码。在您的情况下(遗留代码库),这可能还可以。
相关文章:
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 有没有一种优雅而快速的方法来测试整数中的 1 位是否位于连续区域
- 谷歌测试方法与流
- googletest:测试基类具有纯虚拟方法的派生类时的核心转储
- 在 gtests 中测试C++全局变量的最佳方法
- std::is_invocable 用于测试任意方法是否存在的语法(不仅是运算符())
- C++ 谷歌模拟/单元测试:模拟方法未调用,原始方法是
- 更好的单元测试方法,花费的时间太长
- 多个 if-else 测试的更简单方法
- cppUnit:针对多个测试方法执行一次的设置函数
- 如何每次使用不同的参数多次测试方法
- 带信号和插槽的测试方法
- 为什么我的所有测试方法都没有显示在VS2008中单元测试的测试列表中?
- 如何在谷歌测试中测试方法,使用std::function
- 告诉 mstest 忽略基类中的测试方法,但不忽略子类中的测试方法
- 是否有正确的功能基准测试方法
- 如何使用cppunit显示测试方法名称
- 带有c++的c++cli-MST测试:测试方法不可运行
- C++11提供了一种静态测试方法访问级别的方法
- 将int转换为字节并编写相应的测试方法