我有一个 StatefulWidget(调用它MyWidget
),它的 State ( MyWidgetState
) 有一个字段,该字段在以下myData
过程中被初始化initState()
:
void initState() {
super.initState();
myData = new myData(config.someField.getId());
}
当用户按下按钮时,myData 将添加到全局列表中或从全局列表中删除。
我正在尝试编写一个单元测试来测试这种行为,但我不知道如何访问 MyWidgetState。我尝试在 setup() 中包含这个:
widget = MyWidget();
widgetState = widget.createState();
widgetState.init();
但它每次尝试 initState() 时都会崩溃,并抱怨“someField was called on null”。没关系。我尝试这样做可能是在作弊,我应该使用 WidgetBuilder 做一些事情或使用 MyWidget 启动应用程序,然后在正确实例化后在树中找到 MyWidget。
如果我做了所有这些,一旦我这样做了,我如何访问该 MyWidget 的 MyWidgetState 以获取 myData 的副本并将其与全局列表进行比较?