我遇到了这个问题,并从颤动的不和谐服务器那里得到了一些帮助,在这里我分享了解决方案:注意:您必须对返回的小部件使用动态,因为该类是私有的。
void main() {
testWidgets('TextButton.icon test', (WidgetTester tester) async {
const IconData iconData = Icons.add;
await tester.pumpWidget(
MaterialApp(
home: Center(
child: TextButton.icon(
onPressed: () { },
icon: const Icon(iconData),
label: const Text('text button'),
),
),
),
);
final dynamic textButtonWithIconWidget = tester.widget(find.byWidgetPredicate((Widget widget) => '${widget.runtimeType}' == '_TextButtonWithIconChild'));
expect(textButtonWithIconWidget.icon, const Icon(iconData));
});
}