🔽

【Flutter】Widget test で DropdownButton を触ろうとすると落ちる

2022/05/29に公開

問題

https://github.com/flutter/flutter/issues/89905

上記 issue の通り。Widget test で DropdownButton の中の選択肢をこんなふうに押そうとすると、「対象のウィジェットが2つ見つかってどっち押せばいいのかわからんよ」みたいなエラーが起きて落ちる。

await tester.tap(find.text('なんかの選択肢'));

The finder "2 widgets with text "なんかの選択肢" (ignoring offstage widgets): [Text("なんかの選択肢", dependencies:
[DefaultTextStyle, MediaQuery]), Text("なんかの選択肢", dependencies: [MediaQuery, DefaultTextStyle])]" (used
in a call to "tap()") ambiguously found multiple matching widgets. The "tap()" method needs a single
target.

回避策

取り急ぎの解決策として、 .last を使うと回避できる。

https://stackoverflow.com/questions/69012695/flutter-how-to-select-dropdownbutton-item-in-widget-test/69017359#69017359

// 😌
await tester.tap(find.text('なんかの選択肢').last);

たぶんバグなので、そのうち直ると思う。

GitHubで編集を提案

Discussion