2017-02-09 1 views
3

I는 그 상태 (MyWidgetState)는 StatefulWidget은 (MyWidget를 호출) 다음 initState() 중에 초기화 필드 myData을 가지고있을 전체 목록.단위 테스트 중에 StatefulWidget 상태의 내용에 액세스하려면 어떻게해야합니까?</p> 사용자가 버튼을 누를 <pre><code>void initState() { super.initState(); myData = new myData(config.someField.getId()); } </code></pre> <p>가 MYDATA가 추가 또는 삭제된다

이 동작을 테스트하기 위해 단위 테스트를 작성하려고하지만 MyWidgetState에 액세스하는 방법을 알지 못합니다. "someField가 null의 부름을 받았다"고 불평)

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

을하지만 initState하려고 할 때 그것은 (때마다 충돌 : 내가 설정()이 포함 시도. 괜찮아. 그런 식으로하려고했을 때 나는 속임수 였고 WidgetBuilder로 뭔가를하거나 MyWidget을 사용하여 응용 프로그램을 시작한 다음 제대로 인스턴스화 된 후에는 MyWidget을 트리에서 찾아야합니다.

모든 작업을 수행하면 해당 MyWidget의 MyWidgetState에 액세스하여 myData 복사본을 가져 와서 전체 목록과 비교하는 방법은 무엇입니까?

답변

2

tester.pumpWidgets을 사용하여 위젯을 만든 다음 State을 찾으려면 tester.state(find.foo)을 사용하십시오 (여기서 find.foo은 위젯을 찾는 파인더 임). 자세한 옵션은 WidgetTester 설명서를 참조하십시오.