タグ付けされた質問 「junit」

JavaとScalaで人気のユニットテストフレームワーク。最新バージョンのJUnit 5は、豊富な注釈ベースのテストとパラメーター化されたテストをサポートしています。使用例を示すために、JavaまたはScalaタグと組み合わせて使用​​することを検討してください。

3
PowerMockito.whenNew()の使用がモックされず、元のメソッドが呼び出されます
以下のようなコードがあります: Class A { public boolean myMethod(someargs) { MyQueryClass query = new MyQueryClass(); Long id = query.getNextId(); // some more code } } Class MyQueryClass { .... public Long getNextId() { //lot of DB code, execute some DB query return id; } } 今、私はのテストを書いていA.myMethod(someargs)ます。実際のメソッドをスキップしてquery.getNextId()、代わりにスタブ値を返したいのですが。基本的に、私はあざけりたいですMyQueryClass。 だから私のテストケースでは、私は使用しました: MyQueryClass query = PowerMockito.mock(MyQueryClass.class); PowerMockito.whenNew(MyQueryClass.class).withNoArguments().thenReturn(query); …

30
Eclipse LauncherFactoryのNoClassDefFoundErrorが原因で、JUnit5を使用したテストが見つかりませんでした
問題 プロジェクトのJUnitテストを実行するたびに(Java9およびEclipseOxygen1.aでJUnit5を使用)、Eclipseがテストを見つけられないという問題が発生します。 説明 実行構成では、Eclipseは@Testアノテーションが付けられたメソッドを見つけることさえできず、代わりに「(すべてのメソッド)」のみを表示します。次の写真は、うまくいけば、私のセットアップをよりよく垣間見ることができます。 コンソール出力: java.lang.NoClassDefFoundError: org/junit/platform/launcher/core/LauncherFactory at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:31) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source) at java.base/java.lang.Class.newInstance(Unknown Source) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:368) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:363) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:307) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:222) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206) Caused by: java.lang.ClassNotFoundException: org.junit.platform.launcher.core.LauncherFactory at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ... 11 more …
99 java  eclipse  junit  java-9  junit5 

5
JUnit 4テストスイート
JUnit 4でテストスイートを作成するにはどうすればよいですか? 私が見たすべてのドキュメントは私のために働いているようではありません。また、Eclipseウィザードを使用すると、作成したテストクラスを選択するオプションが表示されません。
98 java  junit  test-suite 

3
Java JUnit:メソッドXはタイプYにはあいまいです
私はいくつかのテストがうまくいきました。その後、別のパッケージに移動したところ、エラーが発生しています。これがコードです: import static org.junit.Assert.*; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.jgrapht.Graphs; import org.jgrapht.WeightedGraph; import org.jgrapht.graph.DefaultWeightedEdge; import org.jgrapht.graph.SimpleWeightedGraph; import org.junit.*; @Test public void testEccentricity() { WeightedGraph<String, DefaultWeightedEdge> g = generateSimpleCaseGraph(); Map<String, Double> eccen = JGraphtUtilities.eccentricities(g); assertEquals(70, eccen.get("alpha")); assertEquals(80, eccen.get("l")); assertEquals(130, eccen.get("l-0")); assertEquals(100, eccen.get("l-1")); assertEquals(90, eccen.get("r")); assertEquals(120, eccen.get("r-0")); assertEquals(130, eccen.get("r-1")); } …

7
Android Test Frameworkを使用したAndroid AsyncTaskテスト
非常に単純なAsyncTask実装の例があり、Android JUnitフレームワークを使用してそれをテストする際に問題があります。 通常のアプリケーションでインスタンス化して実行すると、問題なく動作します。ただし、Androidテストフレームワーククラス(AndroidTestCase、ActivityUnitTestCase、ActivityInstrumentationTestCase2など)から実行されると、奇妙な動作をします。 実行する doInBackground()メソッドを正しく しかし、それはその通知方法(のいずれかの呼び出していないonPostExecute()、onProgressUpdate()など) -ただ静かにすべてのエラーを表示せずにそれらを無視します。 これは非常に単純なAsyncTaskの例です。 package kroz.andcookbook.threads.asynctask; import android.os.AsyncTask; import android.util.Log; import android.widget.ProgressBar; import android.widget.Toast; public class AsyncTaskDemo extends AsyncTask<Integer, Integer, String> { AsyncTaskDemoActivity _parentActivity; int _counter; int _maxCount; public AsyncTaskDemo(AsyncTaskDemoActivity asyncTaskDemoActivity) { _parentActivity = asyncTaskDemoActivity; } @Override protected void onPreExecute() { super.onPreExecute(); _parentActivity._progressBar.setVisibility(ProgressBar.VISIBLE); _parentActivity._progressBar.invalidate(); } @Override …
97 android  junit 

6
Androidライブラリプロジェクトをテストする方法
私は、ユーティリティクラスのみ(アクティビティなし)を含むAndroidビットマップクラス(AndroindLibと呼びます)に基づくAndroidライブラリプロジェクトを作成しています。Android JUnitを使用してテストしようとしましたが、AnroidLib.apkが見つからないという不満が何度もあります Androidライブラリプロジェクトを単体テストする正しい方法は何ですか?
97 android  junit  apk 

22
Eclipse-デバッガーがブレークポイントで停止しない
JUnitをトラブルシューティングしようとしています。ソースコードでは、2つの場所にブレークポイントを設定しています。1)静的メンバーが初期化される行2)テストケースの1つの最初の行。 デバッガーは静的フィールド初期化行で停止します。しかし、それはテストケースでは止まりません。テストケースのどこにブレークポイントを設定しても、デバッガーはそこで停止しません。追加したログメッセージがログに表示されるのを確認できるので、テストケースが実行されることは確かです。 どんな助けでも大歓迎です。 私はEclipse GalileoとJUnit4ランチャーを使用しています。

7
動的な数のテストを伴うJUnitテスト
私たちのプロジェクトでは、たとえば、ディレクトリからすべてのファイルを取得し、その上でテストを実行する、いくつかのJUnitテストがあります。私がtestEveryFileInDirectoryメソッドを実装した場合、TestCaseこれは失敗または成功する可能性のある1つのテストのみとして表示されます。しかし、私は個々のファイルの結果に興味があります。たとえば、EclipseのグラフィカルなTestRunnerで、各ファイルが個別のテストとして表示されるようにTestCase/ を書くにはどうすればよいTestSuiteですか?(各ファイルの明示的なテスト方法をコーディングすることはオプションではありません。) 質問ParameterizedTestとEclipse Testrunnerの名前も比較してください。

3
コマンドラインを使用してJUnitクラスから単一のテストを実行する
コマンドラインとJavaのみを使用してJUnitクラスから単一のテストを実行できるようにするアプローチを見つけようとしています。 以下を使用して、クラスからすべてのテストセットを実行できます。 java -cp .... org.junit.runner.JUnitCore org.package.classname 私が本当にやりたいことは次のようなものです: java -cp .... org.junit.runner.JUnitCore org.package.classname.method または: java -cp .... org.junit.runner.JUnitCore org.package.classname#method JUnitアノテーションを使用してこれを行う方法があるかもしれないことに気づきましたが、私は自分のテストクラスのソースを手動で変更したくない(これを自動化しようとしている)。Mavenにこれを行う方法があるかもしれないこともわかりましたが、できればMavenに依存することは避けたいと思います。 だから私はこれを行う方法があるかどうか疑問に思っていますか? 私が探している重要なポイント: JUnitテストクラスから単一のテストを実行する機能 コマンドライン(JUnitを使用) テストソースを変更しない 追加のツールの使用を避ける

8
JUnitユニットテストのJVMパラメータを設定する方法
実行するために大量のヒープスペースを必要とするJUnitユニットテストがあります。つまり、1Gです。(十分なヒープスペースでのみ実行され、Win 7 64ビットマシンで内部的に実行されるWebstartアプリのメモリ集約的な機能をテストします。したがって、テストの再設計は実際的な提案ではありません。) Intellij IDEAで開発しているので、テストクラスのJVMパラメータ(例:-Xmx1024M)を設定できることはわかっています。ただし、これはテストクラス全体を実行する場合のみです。個別のテストを実行する場合は、そのテストメソッドの実行構成を再作成する必要があります。 また、これらはIDEとボックス固有です。そのため、ボックスを切り替える(複数のマシンで開発している)場合、または同僚の1人がテストを実行しようとした場合、これらの設定は転送されません。(また、EclipseやNetBeansなどの他のIDEが私の同僚によって使用されています。)FWIW、私たちはソースコード管理に水銀を使用しています。 ビルドサイクルではMavenを使用しているので、そのためのJVMパラメーターを指定する方法を知っています。 だから:-テストクラス全体と個々のテストメソッドに適用されるJVMパラメーターを指定する方法を探しています。そして-(リポジトリからコードを取得した)任意のマシンのIDE間でそれらの仕様を共有したいと思います。

4
Eclipseで単体テストを簡単に作成する方法[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 5年前に閉鎖。 この質問を改善する メソッドを選択するだけで簡単に単体テストを作成したい。それを行う日食のツールはありますか?テンプレートをサポートする必要があります。ポジティブテストとネガティブテストを作成できるはずです。

2
データベース接続や組み込みelasticsearchサーバーの開始/停止など、Kotlinでユニットテストリソースを管理するにはどうすればよいですか?
Kotlin JUnitテストでは、組み込みサーバーを起動/停止して、テスト内で使用したいと考えています。 @BeforeテストクラスのメソッドでJUnitアノテーションを使用しようとしましたが、正常に機能しますが、テストケースを1回だけではなくすべて実行するため、適切な動作ではありません。 したがって@BeforeClass、メソッドでアノテーションを使用したいのですが、それをメソッドに追加すると、静的メソッド上にある必要があるというエラーが発生します。Kotlinには静的メソッドがないようです。そして、同じことが静的変数にも当てはまります。テストケースで使用するために、組み込みサーバーへの参照を保持する必要があるからです。 では、すべてのテストケースに対してこの埋め込みデータベースを一度だけ作成するにはどうすればよいですか? class MyTest { @Before fun setup() { // works in that it opens the database connection, but is wrong // since this is per test case instead of being shared for all } @BeforeClass fun setupClass() { // what I want to do instead, but …


6
JUnitテストを待機させるにはどうすればよいですか?
同期的に一定時間待機させたいJUnitテストがあります。私のJUnitテストは次のようになります。 @Test public void testExipres(){ SomeCacheObject sco = new SomeCacheObject(); sco.putWithExipration("foo", 1000); //WAIT FOR 2 SECONDS assertNull(sco.getIfNotExipred("foo")); } Thread.currentThread()。wait()を試しましたが、IllegalMonitorStateExceptionがスローされます(予想通り)。何かトリックはありますか、それとも別のモニターが必要ですか?

4
AssertJ assertThatにカスタムメッセージを追加できますか?
主にHamcrestマッチャーでJUnitアサーションを使用するテストスイートがあります。私たちのチームの1人は、AssertJの実験を開始し、その構文、柔軟性、および宣言型性で人々に感銘を与えました。JUnitが提供する、AssertJに相当するものが見つからない機能が1つあります。それは、カスタムのアサート失敗メッセージを追加することです。 人間が読みやすいように作成されておらず、ランダムに見えるIDまたはUUIDを持つオブジェクトを比較することがよくあり、それらに含まれるデータによってそれらが何であるかを判断することは不可能です。悲しいことに、これはコードベースにとって避けられない状況です。コードベースが果たす目的の一部は、必ずしもそれが何であるかを理解せずに、他のサービス間でデータをマッピングすることです。 JUnitでは、assertThatメソッドはString reasonパラメーターの前にパラメーターを持つバージョンを提供しますMatcher<T>。これにより、人間にとっての比較の意味など、問題に光を当てる短いデバッグ文字列を追加するのは簡単です。 一方、AssertJは、何らかの形式のインターフェイスAssertまたはその多くの実装クラスの1つを返す無数の異なる汎用static assertThatメソッドを提供します。このインターフェースは、失敗に含まれるカスタムメッセージを設定する標準的な方法を提供しません。 メッセージを追加するすべてのアサーションタイプに対してカスタムアサーションクラスを作成せずに、AssertJ APIまたはその拡張機能の1つからこの機能を取得する方法はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.