2009-07-06 2 views
5

MySQLを使用するアプリケーション用のunittestをいくつか書いてみたいと思います。しかし、私は本当のmysqlデータベースに接続するのではなく、SQLサーバーをまったく必要としない一時的なデータベースに接続したいのです。mysqlを使用するpythonアプリケーションをテストする

すべてのライブラリ(私はGoogleで何も見つかりませんでした)?どんなデザインパターン?私はまだ注入されたクラスをテストする必要があるので、DIPは機能しないことに注意してください。

+0

SQLシミュレータを備えたpypi.python.org/pypi/pg13を試してください。警告:私はそれを書きました。 – amwinter

答えて

8

これを行うには良い方法はありません。実際のMySQLサーバに対してクエリを実行したい場合は、そうでなければ、動作するかどうかわかりません。

ただし、プロダクションサーバーに対して実行する必要はありません。単体テストのデータベースを作成し、単体テストが実行されたらそれを分解するスクリプトがあります。そうすれば、静的なテストデータベースを維持する必要はありませんが、実際のサーバーに対してはまだテストが行​​われます。

4

私ではありません開始とMySQLのローカルインスタンスを移入(極めて軽量絶対に任意のSQLサーバーを必要とすることはできませんテスト)が、より広範な/綿密なテストのために、このような目的のためにpython-mockmoxを使用しましたあまりにも悪い。

残念ながら、SQLiteのSQLダイアレクトとMySQLの違いは、方言の違いを隠すことができるORM(Django、SQLObject、SQLAlchemy、...)を使用していない限り、前者をテストに使用するのはやや難しいことです。

関連する問題