3

Java プロジェクトの単体テストの作成に取り組んでいますが、アサーションを行わなくてもテストが失敗し続けます。

スタックトレースを読んだ後、使用している retsIQ ライブラリのメソッドがアサーション エラーをスローしていることに気付きました。とにかく私はこれを無視することができますか?モジュールを逆コンパイルして再コンパイルしたくないのです。

テストとして実行されない場合、この正確なコードは正常に動作することにも言及する必要があります。

これが私のテストの写真です: 単体テスト

これは、テストで実行されていない画像です。 ここに画像の説明を入力

4

2 に答える 2

1

2 つのことを想定します。1) プロジェクトは Maven ベースです。2) これらの 2 つのコード フラグメントはまったく同じです (ちなみに、何もしない行を除いてassertTrue(true);)。

おそらく、「実行」構成と「テスト」構成のクラスパスが異なるという事実が問題の原因です。テスト クラスパス内の一部のライブラリのバージョンが間違っているか、一部のライブラリが欠落している可能性があり、最終的にこの例外が発生します。

pom.xml ですべてのテスト スコープの依存関係を再確認することをお勧めします。Maven Dependency Pluginを使用してプロジェクトの依存関係ツリーを印刷することもできます(ただし、テストの依存関係を個別に印刷できるかどうかはわかりません)。

mvn dependency:tree -Dverbose

または、Intellij Idea の「プロジェクト構造」>「モジュール」>「依存関係」タブに移動し、「テスト」スコープのすべてのエントリを調べることができます。

于 2015-06-22T00:27:46.940 に答える
0

スタックトレースから、応答の解析時に予期しないデータが見つかったようです。問題を診断する最善の方法は、SearchCompactReader.parse()(16 行目あたりに) ブレークポイントを設定し、デバッガーでテストを実行することです。

ところで、あなたのテストは単体テストではありません。単体テストは、単一のクラスまたはメソッドを分離してテストします。テストがライブ サーバーにヒットしているようです。

于 2015-06-21T21:54:38.353 に答える