問題タブ [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単体テスト:データベース操作を含むモジュールを単体テストする方法は?
実際のデータベースに接続するために pymysql クライアント ライブラリを使用しています。モジュールに関数があり、pymysql を使用してデータベースに接続し、データベース挿入操作のみを実行します。実際のデータベースにアクセスせずに Python でこの関数を単体テストするにはどうすればよいですか?
私のpythonバージョンは2.7です。
python - unittest.mock を使用して Python で SMTP クライアントにパッチを適用する
SMTP クライアント フォームの生成のモックを作成したいと考えていますsmtplib
。次のコード:
戻り値
パッチが失敗したことを意味します。
編集:興味深いことに、ここで説明されているモンキーパッチは同じ結果をもたらします。
pytest - スノーフレーク接続のモック
SnowflakeConnection クラスのラッパーとして機能する Python の SnowflakeApi クラスがあります。私のSnowflakeApiは
SnowflakeApi の名前空間は connection.snowflake_connection.SnowflakeApi です (つまり、connections というフォルダーに snowflake_connection.py があります)
pytest と unittest.mock を使用して、このクラスの単体テストを作成したいと考えています。問題は、MagicMock オブジェクトが返され、データベース呼び出しが行われないように、'connect' をモックしたいことです。これまでのところ、私は試しました:
- monkeypatch.setattr(connections.snowflake_connection,"接続",return_value = "")
- 元のクラスを変更して、スノーフレークをインポートするだけにしました。次に、モック オブジェクトを作成し、monkeypatch.setattr(snowflake_connection,"snowflake",my_mock_snowflake) を使用しました。それもうまくいきませんでした
要するに、他にもいくつか試してみましたが、何もうまくいきませんでした。私がやりたいのは、スノーフレーク接続を模擬することだけなので、実際のデータベース呼び出しは行われません。