我正在尝试用 C++ 编写单元测试,并且面临使用 Fakeit 为外部依赖项创建模拟对象的问题。所以我们有一个类似于下面的类:
class A
{
int test_method()
{
B obj;
return obj.sendInt()
}
};
class B
{
int sendInt()
{
return 5;
}
};
现在假设我想为test_method()
class编写一个单元测试A
。当我们打电话时,obj.sendInt()
我想模拟它并返回一个不同的值。我尝试使用 fakeit 但无法找到解决方案。
我知道如果我们尝试B
通过构造函数或 setter 方法进行依赖注入,这将得到解决,但我不想这样做,因为它需要对A
.
对于 Java 中的类似场景,我会使用 PowerMockito 并使用PowerMockito.whenNew
B mock = Mockito.mock(B.class);
PowerMockito.whenNew(B.class).withAnyArguments().thenReturn(mock);
Mockito.when(mock.test()).thenReturn(2);
A obj=new A();
assertEquals(obj.test(), 2);