問題タブ [python-unittest.mock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 初期化されていないグローバル変数をモックする方法は?
モジュールに初期化されていないグローバル変数があり、アプリケーションの起動時に正しく初期化されます。型チェックには、python >= 3.6 の値を使用せずに構文を使用するvar: Type
ため、デフォルト値 ( になりますNone
) の型チェックを複雑にする必要はありません。
ここで、このグローバル変数を使用する別の関数を単体テストしたいのですが、からエラーが発生しunittest.mock.patch
ます。これが私がやっていることの簡略化されたバージョンです:
- ファイル mod.py:
- ファイル test.py:
- で実行し
python3 -m unittest test.py
ます。
例外は
mod.py の 1 行目をコメントし、2 行目をコメント解除すると、テストはパスします。
アプリケーション コードでグローバル変数のデフォルト値を定義せずにテストに合格する方法はありますか?
編集:コメントに記載されているように、実際の変数は、テスト中にロードしたくない解析済みの構成ファイルです。これはコマンド ライン アプリケーションで使用されるため、変数は常にコマンド ラインの解析が完了した後に設定されます。実際のコードはhereとhereです。実際のテストでは、グローバル変数を bool として直接モックしようとしているのではなく、config オブジェクトのいくつかの属性をモックしようとしています。
python - Python 3 モジュール内の外部関数を除いて、try の単体テストを作成する方法
try except
Python のモジュールの関数定義の外で定義されているブロックの Python 3 unittest の書き方を知りたいです。
次package/module.py
のようなコード ブロックがあるとします。
OS のインポート
(実際のコードは気にしないでください。os.getenv('NOT_EXISTING_KEY', False)
この特定のケースで使用できることはわかっています。私が興味を持っているのは、モジュール内(関数外)の try-except ブロックが期待どおりに動作することを実際にテストすることです。
package.module.CONSTANT
期待値に設定されていることを確認する単体テストを作成するにはどうすればよいですか?
unittest ファイル (私は pytest を使用) には、次のようなものがあります。
try ブロックが正しく実行された場合、CONSTANT が期待どおりであることをテストします。
ただし、try ブロックの os.environ で例外が発生し、CONSTANT が False に設定されていることをテストできるように、インポート機構をモックする方法はわかりません。
どうやってやるの?
python - 関数の Python モック テスト配列
以下は私のpythonモジュールですmy_func.py
function_1
関数内の正しいrequest
引数で呼び出されget_data()
、次のテストが正常に機能するかどうかをテストしたい。
Pythonモジュールmy_func.py
を関数の配列がある次のように変更すると、関数を個別にモックする方法に苦労しています。