我想为自定义小部件编写单元测试,特别是检查基于BuildContext为主题的嵌套文本小部件的颜色。如何基于BuildContext测试不同的样式?
要测试的小部件:
class ThemedText extends StatelessWidget {
@override
Widget build(BuildContext context) {
final TextStyle inheritedTextStyle = Theme.of(context).textTheme.subtitle;
Color customColor = inheritedTextStyle.color;
if (inheritedTextStyle.color == Colors.blue) {
// Override the inherited color
customColor = Colors.red;
}
return Text(
'Themed',
style: inheritedTextStyle.copyWith(color: customColor),
);
}
}
我要编写两个测试:
答案 0 :(得分:0)
这样的事情对我有用:
final textColorFinder = tester.widget<Text>(find.byType(Text));
expect(textColorFinder.style.color, Colors.red);