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