Flutter-path_providerを使った関数のテストでエラーが出た

パッケージのバージョンを更新してテストを実施したら、path_providerの関数を使っているところでエラーが出まくってしまった。

エラーの内容は以下になる。

  • MissingPluginException(No implementation found for method getTemporaryDirectory on channel plugins.flutter.io/path_provider)

しらべたらpath_providerのissuesにもこんなのが入っている。

どうやらテスト時はもともと不定な動作だったようで、たまたまパッケージを最新版にしたら発生してしまったということになるのだろうか。

解決方法というか、対応方法については、path_providerのパッケージページの最後にリンクが貼ってあり、その先を見るとMockを作って対応してくれということらしい。
テストで運用できるパスが欲しいだけなのだけどな。

自分の開発環境はWindowsだったので、以下の様な対応でとりあえず解決(テストをパス)することはできた。
開発環境を切り替える場合は修正しなきゃいけなさそうだけど。

  1. path_provider_windowsパッケージをpub addする。
    このパッケージがWindows版のpath_providerの実装になっている。
  2. テストのmainの直後に以下の実装を入れる。
    これでpath_providerの呼び出し先を path_provider_windowsの実装に紐づける。

    • TestWidgetsFlutterBinding.ensureInitialized();
      PathProviderWindows.registerWith();

 

コメント

タイトルとURLをコピーしました