Я пробую свои силы в тестах, но мне не удалось выяснить, как получить доступ к build
членам виджета.
Возьмите следующий виджет:
class LinkButton extends StatelessWidget {
LinkButton({Key key}): super(key: key);
@override
MaterialButton build(BuildContext context) {
return MaterialButton(
onPressed: () => print('test'),
child: Text('test button'),
elevation: 0,
padding: EdgeInsets.all(0),
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
);
}
}
Как проверить свойство splashColor
из тестов? А пока вот что у меня есть:
testWidgets('LinkButton has a text', (WidgetTester tester) async {
await tester.pumpWidget(LinkButton());
final buttonFinder = find.widgetWithText(LinkButton, 'test button');
expect(buttonFinder, findsOneWidget);
var button = buttonFinder.evaluate().single.widget;
print(button);
});
Это дает мне доступ к LinkButton
объекту, который не имеет свойства splashColor
. Я пытался разыграть его as MaterialButton
, но он говорит мне, что LinkButton
, конечно, не подтип MaterialButton
.
Мне не удалось найти соответствующую документацию по этому вопросу, кто-нибудь знает, как это сделать?