問題タブ [junit]
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.
junit - junitperf を使用して junit4 テストを実行する
Junit4 で Junitperf を使用することは可能ですか? 私はいくつかのテストを含む単純な Junit4 テスト クラスを持っており、そのクラスの単一のテストで TimedTest を実行したいと考えています。どうやってやるの?
より明確にするために、私の Junit4 クラスは次のようなものです。
junit3を使用すると、次のように書く必要があります:
Junit4で?
java - JUnitは「エラー」に関する情報を提供しません
Junit 4.4 と Ant 1.7 を使用しています。テスト ケースがエラーで失敗した場合 (たとえば、メソッドが予期しない例外をスローしたため)、エラーの詳細はわかりません。
私のbuild.xmlは次のようになります:
「ant テスト」を実行すると、(たとえば) 2 回のテスト実行、0 回の失敗、1 回のエラーと表示されます。これは完全に合理的であり、エラーの原因を突き止めることができますが、「NoSuchTest のようなテストはありません」とは言いません。
ありがとう!
-ダン
java - コード内で JButton ActionListener をアクティブにするにはどうすればよいですか (単体テストの目的)?
JUnit を使用して単体テストを実行できるように、JDialog 内で JButton ActionListener をアクティブにする必要があります。
基本的に私はこれを持っています:
それから私は私のJUnitファイルを持っています:
これは単体テストで行うには冗長に聞こえるかもしれませんが、実際のクラスはそれよりもはるかに複雑です...
java - JUnit テストで Swing イベントを処理する
私は、それぞれ独自の通信スレッドを持つプレーヤーオブジェクトとして表される複数の「プレーヤー」へのネットワーク通信を備えたSwing Javaアプリケーションを持っています。アプリには、すべてのプレーヤー オブジェクトを管理する「チーム」オブジェクトがあります。いくつかの UI コンポーネントは、Team オブジェクトを通じてプレイヤーから渡されたイベントをリッスンします。
私の設計では、チーム オブジェクトは、invokeLater を使用して Swing スレッドですべてのイベントを起動するため、アプリケーションの残りの部分でスレッド化の問題を気にする必要はありません。ただし、JUnit テストで Team クラスをテストする方法がわかりません。
もう少し背景。最初に、Team オブジェクトにプレイヤー オブジェクト スレッドでイベントを発生させました (スレッドの切り替えはまったくありません)。チーム単体テストは成功しましたが、invokeLaters を使用して UI で多くのスレッドの問題が発生し、すべての場所で同期されました。次に、Team オブジェクトが Swing スレッドでイベントを発生させることで、スレッド モデルを簡素化することにしましたが、イベントを受信しないため、チームの単体テストは失敗します。何をすべきか?
心に浮かぶ解決策は、チームの上に追加のオブジェクトを導入してスレッドの切り替えを行い、元の単体テストをそのまま維持することですが、単体テストを成功させるためだけに運用コードを複雑にするという考えは好きではありません。
java - JUnit3.xとJUnit4.xでテストを実行することは、依然としてベストプラクティスですか?
私はしばらくこれを見ていませんが、正しく思い出せば、antとmavenの両方がユニットテストのためにJUnit 3に依存しています(maven 2.09の時点で、デフォルトのPOMファイルにはまだJUnit 3.81があります)。
最新で最高のものを使用する代わりに、JUnit 3に固執することはまだ意味がありますか?私が行方不明になっているかもしれない正当な理由はありますか?
sql - JUnit からの SQL スクリプトの実行
私が取り組んでいるJUnitテストケースのセットアップメソッドでは、各テストケースの前にデータベースでSQLスクリプトを実行し、その後ロールバックする必要があります。
各SQLコマンドをバッチに追加して実行するトークナイザーを使用してみました。しかし、私は仕事をすることができません。私の質問は、JUnit にこのアクションを実行するための標準的な方法があるかどうかです。
junit - @Entity Pojosをテストする必要がありますか?
@Entityで注釈が付けられたPojoをテストする必要があるかどうかわかりません。結局のところ、主に生成されたゲッター/セッターがあります。それらをテストする必要がありますか?
DAOのテストに関しては、これらすべてのエンティティを使用しているので、すでに適切にテストされていると思いますか?
あなたの考えをありがとう。
マット
java - Spring単体テストを実行しているAOPの問題
AOP の JDK プロキシを使用するように構成された Spring Web アプリケーションがあります。AOP アノテーション (@Transactional など) は、実装クラスではなくインターフェイスで宣言されます。
アプリケーション自体は正常に動作しますが、単体テストを実行すると、AOP 機能に (JDK プロキシではなく) CGLIB を使用しようとしているようです。これにより、テストが失敗します。以下にスタック トレースを追加しました。
テストの実行時に CGLIB が使用されている理由がわかりません。なぜなら、Spring の構成はアプリケーションの実行時とほぼ同じだからです。おそらく重要な違いの 1 つは、テスト構成がJTA トランザクション マネージャーの代わりにDataSourceTransactionManagerを使用することです。テスト クラス自体はすべてAbstractJUnit4SpringContextTestsを拡張しますが、このクラスは何らかの形で CGLIB を使用するように配線されているのでしょうか?
編集: コメンテーターの 1 人が、Spring 構成を投稿するように要求しました。以下に省略形で示します (つまり、無関係な Bean と XML 名前空間は省略されています)。
spring-servlet.xml
applicationContext-service.xml
applicationContext-test.xmlこれは、単体テストの実行時にのみ含まれます。その目的は、他の構成ファイルで宣言されている Bean の一部を上書きすることです。
java - JUnit 4: テストが実行される前にテスト スイート内のものをセットアップします (テスト スイート用のテストの @BeforeClass メソッドのように)
(安らかな)Webサービスで機能テストを行いたいです。テスト スイートには多数のテスト ケースが含まれており、それぞれが Web サービスに対していくつかの HTTP 要求を実行します。
当然、Web サービスを実行する必要があります。実行しないと、テストは失敗します。:-)
Web サービスの開始には数分かかります (大量のデータ処理が行われます)。そのため、できるだけ頻繁に開始しないようにします (少なくとも、サービスからリソースを GET するだけのすべてのテスト ケースで 1 つを共有できます)。
テストケースの @BeforeClass メソッドのようにテストが実行される前に、テストスイートに爆弾を設定する方法はありますか?
java - FileReader が適切に閉じられたことを JUnit テストから確認する
FileReader を使用していくつかの入力ファイルからデータをロードする Java コードを書いています。私は TDD をかなり頻繁に使用しており、使い終わったときにリーダーで close() を呼び出して適切にクリーンアップしていることを確認するテストをいくつか追加したいと考えています。残念ながら、これをテストする良い方法を思いつくことはできません。誰にも洞察がありますか?
編集して追加: モック オブジェクトを使用してクローズ コールを明示的にテストできることはわかっていますが、可能な場合は避けたいと思います。ファイルを閉じないことの影響を認識できるコードを書くためです。)