2017-02-09 41 views
3

我有一个StatefulWidget(称之为MyWidget),其状态(MyWidgetState)具有场myData其期间initState()如下初始化:如何在单元测试期间访问StatefulWidget状态的内容?

void initState() { 
    super.initState(); 
    myData = new myData(config.someField.getId()); 
} 

当用户按下一个按钮时,myData的添加或删除一个全球列表。

我想写一个单元测试来测试这种行为,但我不知道如何访问MyWidgetState。我试着包括这在设置():

widget = MyWidget(); 
widgetState = widget.createState(); 
widgetState.init(); 

,但是当它试图INITSTATE它崩溃每次(),抱怨说“someField被称为对空”。没关系。我可能会试图这样做,我应该使用WidgetBuilder做一些事情,或者使用MyWidget启动应用程序,然后在树中正确实例化后在树中找到MyWidget。

如果我做了这一切,一旦我做的我怎么能访问该进myWidget的MyWidgetState得到myData的副本,并将其与全局列表?

回答

2

创建使用tester.pumpWidgets小部件,然后使用tester.state(find.foo)找到State(其中find.foo是找到一个widget的取景器)。请参阅WidgetTester文档以获取更多选项。

相关问题