我正在尝试在我的应用程序中测试剪贴板功能。当我按下按钮时,它应该将我的文本复制到剪贴板。当我尝试使用小部件测试来测试此功能时,返回的未来没有得到解决。有没有办法模拟 Clipboard.setData 方法?
由于我的原始代码非常大,我做了一个可重现的小部件测试,它有同样的问题。当我执行期望()时,布尔数据复制为假。
testWidgets('test clipboard function', (WidgetTester tester) async {
var dataCopied = false;
await tester.pumpWidget(
MaterialApp(
home: Container(
width: 10,
height: 10,
child: ElevatedButton(
onPressed: (() {
Clipboard.setData(ClipboardData(text: "test")).then((_) {
dataCopied = true;
});
}),
child: Text("Copy Text"),
),
),
),
);
await tester.tap(find.byType(ElevatedButton));
expect(dataCopied, true);
});