【发布时间】:2021-07-14 08:44:57
【问题描述】:
我正在尝试获取一个模拟对象属性。在初始化期间,“子”类正在获取对父级私有函数的引用。我想在测试期间获取此引用以检查父级的私有方法。
这是一个复杂得多的代码的简化示例:
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);
我想要实现的是:
- 使用 mockedPerk 创建 Monkey 实例
- 在
MockedPerk类中捕获属性_perk.jump - 获取对
Moneky's类的私有_jump方法的引用以便能够对其进行测试。
限制
- 公开方法不是一种选择。
- 不能使用
@visibleForTesting公开方法
【问题讨论】:
标签: unit-testing dart testing mockito private-methods