【发布时间】:2020-01-04 15:23:50
【问题描述】:
我想弄清楚如何为我在 Flutter 和 Dart 中的单元测试修改静态 getter 的返回值。
我正在对一个简单的函数进行单元测试:
Future<bool> exampleFunc() async {
if (Platform.isIOS) {
// Do some iOS-specific things
return false;
} else if (Platform.isAndroid) {
// Do some Android-specific things
return true; // just as an example
}
throw 'Unexpected platform';
}
我想修改一个类的静态 getter 的返回值:我想针对不同的测试用例调整 Platform.isIOS 和 Platform.isAndroid 的返回值。
请注意,我知道此问题的解决方法,例如,我可以将函数拆分为两个函数(每个平台一个),我可以注入自己的 enum(或者在这种情况下,甚至是 @987654325 @ 可能有效)表示支持的平台。在这个例子中,我实际上打算这样做,但我想知道如何“修改”Platform 类的 getter 的返回值,因为有时,您不想修改函数的签名,因为其他人可能依赖它,但您仍然希望对函数进行单元测试。
【问题讨论】:
标签: unit-testing flutter dart mockito platform