问题描述
我正在尝试获取一个模拟对象属性。在初始化期间,'child' 类正在获取对父类私有函数的引用。我想在测试期间捕获此引用以检查父级的私有方法。
这是更复杂代码的简化示例:
class Monkey{
final name;
final Perk _perk;
Monkey('Maya',this._perk){
this._perk.jump = this._jump;
}
void _jump(int a){ // here's the problem,not able to test private method
print('jump ${a}');
}
}
我想要做的就是能够在 mockito 测试期间测试私有方法 _jump。我不想更改代码。 在测试期间我创建了
class MockPerk extends Mock implements Perk{}
Monkey(mockedPerk);
我想要实现的是:
限制
解决方法
您可以使用 verify(mock.setter = captureAny)
捕获传递给 setter 的值。例如:
var mockedPerk = MockPerk();
var monkey = Monkey('Maya',mockedPerk);
var jump = verify(mockedPerk.jump = captureAny).captured.single as void
Function(int);
jump(5); // Prints: jump 5