0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

この記事誰得? 私しか得しないニッチな技術で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

【Go】mockgenでディレクトリ内のファイルからモックを一度に作成するスクリプト

Posted at

mockgenとは?

Goでモックを作成するためのパッケージです。
golang/mock/mockgenはアーカイブされているため、使用するのはgo.uber.org/mock/mockgenになります。

インストールは以下のコマンド

go install go.uber.org/mock/mockgen@latest

モックを作成する際は、以下のコマンドのように一つづつ作成するが、正直めんどくさいですよね😇

mockgen -source=foo.go [other options]

という事で、対象ディレクトリ内のファイルを全てモック化してもらいましょう😎

ディレクトリ内のファイルから一度にモックを作成するスクリプト

#!/bin/bash -eu
# 環境変数設定
ROOT=対象のルート
MOCK_DATA_ROOT="モックを格納するディレクトリ"

# ROOTのモック化したいファイルのあるディレクトリ一覧
# この例では、usecaseとrepositoryディレクトリ配下のファイルを指定
SEARCH_DIR_LIST="
domain/repository
usecase
"

echo "Start..."

cd ${ROOT}

for dir in ${SEARCH_DIR_LIST}; do
  # test.go以外のgoファイルを対象のディレクトリから探す
  file_path_list=$(find ./${dir} -type f -not -name "*_test.go" -name "*.go")

  for file_path in ${file_path_list}; do
    # file_pathからモック作成
    mockgen -package mock -source=./$file_path -destination=./$MOCK_DATA_ROOT/$file_path
  done
done

echo "Done."

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?