まず、私はを使用Scala
しますが、どのJava
アプローチでもおそらく機能します。
データベースに接続されたアプリケーションがあり、データベースを変更せずに、またはデータベースがオフラインの場合に、テストを実行してアプリケーションを開発したいと考えています。
たとえば、データベースに接続する大規模なクラス(またはモジュール)がありますが、これらすべてのことを実行しますか?外部からそのクラスまたはそのパラメーターにアクセスするにはどうすればよいですか?
たとえば、クラスを正常に実行したいが、の代わりに、statement.executeUpdate( sql )
このprintln( "Did: " + sql )
テストで最初のメソッドを呼び出さずに、を実行したい場合です。
明らかに、1つの方法は、これらのステートメントを単純に置き換えるか、ファイル全体をコピーして置き換えることです。しかし、エラーが発生しやすく、元に戻すと何かを忘れてしまう可能性があります。さらに、それは非常に冗長です。
この問題にどのように取り組むか?どのようにそれを行うのJUnit
ですか?
免責事項:「クラスのパラメータ化」のような解決策は使用しないでください。コンストラクターにパラメーターをほとんど持たせたくないので、呼び出すたびにすべてを指定する必要はありません。テストクラスは私のアプリケーションでは二級市民であり、実際のクラス/実際の開発にはほとんどまたはまったく影響を与えないはずです。