2017-02-09 17 views
3

I状態(MyWidgetState)次のようにinitState()時に初期化されたフィールドmyDataを有するStatefulWidget(MyWidgetそれを呼び出す)を有する:ユニットテスト中にStatefulWidgetの状態の内容にアクセスするにはどうすればよいですか?

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

ユーザがボタンを押すと、MYDATAを追加またはAから除去しますグローバルリスト

私はこの動作をテストするための単体テストを作成しようとしていますが、MyWidgetStateにアクセスする方法はわかりません。 「someFieldがヌルに呼ばれた」という不満を、)

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

が、それはinitState(しようとすると、それはすべての時間をクラッシュ:私は、セットアップ()でこれを含めてみました。それはいいです。私は恐らくそれをやり遂げようとしていたのですが、WidgetBuilderを使って何かをしたり、MyWidgetを使ってアプリケーションを起動したりしたら、適切にインスタンス化されたらMyWidgetを見つけてください。

もし私がそのことをしたら、MyWidgetのMyWidgetStateにアクセスしてmyDataのコピーを取得し、それをグローバルリストと比較するにはどうしたらよいですか?

答えて

2

tester.pumpWidgetsを使用してウィジェットを作成し、その後、Statefind.fooウィジェットを見つけファインダーです)を見つけるためにtester.state(find.foo)を使用しています。その他のオプションについては、WidgetTesterのドキュメントをご覧ください。

関連する問題