We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
make_docs.py
SettingLoader
#711 で提案した内容です。
APIドキュメントを生成するmake_docs.pyでは、実際に設定ファイルをファイルシステムから読み込む機能を持ったSettingLoaderをインスタンス化していますが、ドキュメントの生成には実際の機能は不要なため、ダミーの設定を返すMockに置き換えたいです。
generate_app
SettingLoaderBase
MockSettingLoader
setting_loader
0.15 開発版
The text was updated successfully, but these errors were encountered:
issue作成ありがとうございます!
SynthesisEngineとSynthesisEngineBaseみたいに、ということですよね! すごく良いと思います!!
Sorry, something went wrong.
Mock化の必要性が低減した、と考えています。
Mock化の利点は次の2点かと思います:
A. 処理スキップによる高速化 B. 設定ファイルへの配慮不要化による容易化
#855 により、SettingLoader は設定ファイル無しで機能するようになりました。 よって SettingLoader は設定ファイルへの配慮無しに make_docs.py 等で利用可能、つまり B の利点が無くなりました。 Aの速度は実務上ほぼ無視できるため、Mock化の利点はほぼ無くなりました。 Interface導入は想像以上にメンテコストが掛かるため、利点無しで導入するにはデメリットが大きいです。
よって、状況の変化により、Mock化の必要性は無くなったと考えます(issue close可能)。
なるほどです!
他にも、まあ将来設定値を変えた場合のrun.py全体のテストとかをしたくなったら設定のmockが必要になるかもなのですが、その場合はどちらかというとSettingLoaderをmockにするよりSetting構造体をDI可能にする形を取る気がします。
他にはちゃんと設定が保存されるかなどのテストにもmockは便利そうですが、現状設定ファイルパスがDI可能になっているため、tmpファイルのパスを指定すればそのテストもあまり不自由なく可能そうです。
ということでmock化は必然ではなくなったと判断し、closeさせていただきます!
No branches or pull requests
内容
#711 で提案した内容です。
APIドキュメントを生成する
make_docs.py
では、実際に設定ファイルをファイルシステムから読み込む機能を持ったSettingLoader
をインスタンス化していますが、ドキュメントの生成には実際の機能は不要なため、ダミーの設定を返すMockに置き換えたいです。Pros 良くなる点
make_docs.py
の機能が単純になるgenerate_app
を再利用しやすくなるCons 悪くなる点
実現方法
SettingLoader
のインタフェースを定義する抽象クラスSettingLoaderBase
を作成するSettingLoader
がSettingLoaderBase
を継承するようにするSettingLoaderBase
を継承するMockSettingLoader
を作成するgenerate_app
の引数setting_loader
の型をSettingLoaderBase
に変更するmake_docs.py
のgenerate_app
呼び出しでSettingLoader
の代わりにMockSettingLoader
をインスタンス化するようにするVOICEVOXのバージョン
0.15 開発版
その他
関連Issue
The text was updated successfully, but these errors were encountered: