0

powermock 1.2.5 を使用して、データを Oracle データベースに保存するクラスを実行しています。テストを実行すると、単体テストが次の例外で失敗します。

NoSuchAlgorithmException : DES アルゴリズムが見つかりました。

コードをデバッグした後、アプリケーションがパスワードを設定してデータベース接続を確立しようとすると、この例外がスローされることがわかりました。

私の観察のいくつかは次のとおりです。

  1. power mock なしで単体テストを実行すると、例外は発生しません。
  2. eclipse.sun-jce.jar の単体テスト ブートストラップに手動で sun-jce.jar ファイルを含めると、単体テストを実行できます。これは、jre ライブラリ フォルダー内の jar ファイルの 1 つです。SUN Java jre バージョン 1.5.0_10 を使用しています

したがって、単体テストの実行時に、パワーモックがこの特定のjarファイルを何らかの形でアンロードすると推測しています。powermock を使用するときに同様の問題が発生する人はいますか?

現時点で考えている回避策は、単体テストの setup() の下でプログラムによって jar ファイルをロードすることです。

4

1 に答える 1

3

この問題を解決するために管理します。PowerMock は独自の暗号ライブラリをロードしているようです。したがって、パワー モックを実行するときに javax.crypto を無視する @PowerMockIgnore({"javax.crypto" }) を追加すると、テストは機能します。

于 2009-09-23T21:01:56.873 に答える