我有一个按钮,可以在按下时隐藏自己和另一个小部件。当它被隐藏时,屏幕上会出现一个新按钮,可以再次撤消(显示)上一个按钮和小部件。
我很确定我的实现是有效的,因为我已经在多个设备上测试它没有任何问题,但每当我尝试为它编写正式测试时,就会出现问题。我正在使用以下代码来测试我的小部件:
await tester.tap(find.widgetWithText(GestureDetector, "HIDE"));
expect(testContainerState.ifContainerWithOptionsIsDisplayed, false);
print(find.byType(GestureDetector));
await tester.tap(find.widgetWithText(GestureDetector, "SHOW"));
expect(testContainerState.ifContainerWithOptionsIsDisplayed, true);
前两行是点按按钮并检查ifContainerWithOptionsIsDisplayed
是否已更改。在我的实现中,这是通过setState
方法完成的,应该重新绘制以隐藏小部件和按钮并显示新按钮。
在第三行中,我会检查在重绘之后我还能找到多少GestureDetector
个print
。 GestureDetector
语句的输出仍然显示我现在仍然可以找到现在应该隐藏的小部件的所有':)'
。
在第4行,我尝试找到我的SHOW按钮,由于重绘,现在应该可见。但没有找到任何元素。
同样,我非常确定我的小部件的代码是正确的,因为我已经手动测试了这个测试用例而没有任何问题。也许我错过了一些关于Flutter测试的知识。有人可以请我填一下吗?
答案 0 :(得分:1)
await tester.pump();
或只是
tester.pump();
应该这样做
另见