nde*_*ker 5 testing dart flutter
介绍
我们有一个ListView命名的 OrganizationList,其中包含ListTile每个项目的小部件。我们使用一个Text小部件来显示ListTile.
我们想测试组织名称是否正确显示且顺序正确。
我们目前的解决方案
我们有以下断言:
var organizationA = find
.descendant(
of: find.byType(OrganizationList),
matching: find.byKey(
Key('0'),
),
)
.evaluate()
.first
.widget as Text;
expect(textOrganization.data, 'organization-a');
var organizationB = find
.descendant(
of: find.byType(OrganizationList),
matching: find.byKey(
Key('1'),
),
)
.evaluate()
.first
.widget as Text;
expect(textOrganization.data, 'organization-b');
Run Code Online (Sandbox Code Playgroud)
这感觉像是一种非常麻烦的测试列表项是否显示正确标签的方法。但我找不到更优雅的方式。
问题
在 Flutter / Dart 中,断言列表项的内容和所有项的顺序的更优雅的方式是什么?
使用我的解决方案,您可以检查特定位置的 ListItemWidget 和文本是否可见(或不可见):
void checkPosition(int index, SomeObj obj, {bool isOnPosition = true}) {
final listItemFinder = find.byType(ListItemWidget);
final listItem = listItemFinder.evaluate().isEmpty
? null
: listItemFinder.at(index);
if (listItem == null) {
if (isOnPosition) {
fail('List not found');
}
return;
}
final positionText = find.text(obj.text);
expect(find.descendant(of: listItem, matching: positionText),
isOnPosition ? findsOneWidget : findsNothing);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4636 次 |
| 最近记录: |