E. *_*sen 5 unit-testing flutter
我正在努力在单元测试中测试“platform.isAndroid”。我知道 dart.io 的平台不能被嘲笑,因为它是一个抽象的实例。然而,谷歌团队本身有一个平台包,但不幸的是没有任何文档或简单的使用示例。
任何人都可以帮助测试示例来检查if (platform.isAndroid)
或 iOS 吗?
我尝试用 Mockito 来模拟它,但没有成功。
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';
import 'package:platform/platform.dart';
class MyPlatform extends Mock implements LocalPlatform {};
void main() {
var _platform = MyPlatform();
when(_platform.isAndroid).thenReturn(true);
...
}
Run Code Online (Sandbox Code Playgroud)
我的控制器如下所示。由于版权原因,我没有放置完整的代码,但如果您需要更多详细信息,请告诉我。
import 'package:device_info/device_info.dart';
import 'package:flutter/material.dart';
import 'package:mobx/mobx.dart';
import 'package:platform/platform.dart';
import 'package:share_extend/share_extend.dart';
part 'pdf_view_controller.g.dart';
class PdfViewController = _PdfViewControllerBase with _$PdfViewController;
abstract class _PdfViewControllerBase with Store {
final _platform = LocalPlatform();
@observable
Widget actionButton = SizedBox();
@action
getActionButton() async {
if (_platform.isAndroid) {
var info = await DeviceInfoPlugin().androidInfo;
if (info.version.sdkInt < 23) {
actionButton = SizedBox();
} else {
actionButton = IconButton(
icon: Icon(Icons.share),
onPressed: () {
ShareExtend.share(path, "file");
},
);
}
} else {
actionButton = IconButton(
icon: Icon(Icons.share),
onPressed: () {
ShareExtend.share(path, "file");
},
);
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
394 次 |
最近记录: |