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

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

8
AndroidJUnit4.classは廃止されました:androidx.test.ext.junit.runners.AndroidJUnit4の使用方法?
私が使用していた計装テストに @RunWith(AndroidJUnit4.class) から import androidx.test.runner.AndroidJUnit4; 私のテストケースを確立するために。使用するためのヒントを非推奨として今、この行がマークされますAndroidJUnit4から、 import androidx.test.ext.junit.runners.AndroidJUnit4 ただしAndroidJUnit4、指定したパッケージからインポートしようとすると、エラーが発生し、ext解決できません。 この問題を解決するために、gradleにどのパッケージを含める必要があるか、考えがありますか?

14
JUnit 4で現在実行中のテストの名前を取得します
JUnit 3では、次のように現在実行中のテストの名前を取得できます。 public class MyTest extends TestCase { public void testSomething() { System.out.println("Current test is " + getName()); ... } } 「現在のテストはtestSomethingです」と出力されます。 JUnit 4でこれを行うためのすぐに使用できる簡単な方法はありますか? 背景:明らかに、テストの名前だけを印刷する必要はありません。テストと同じ名前のリソースに格納されているテスト固有のデータをロードしたい。ご存知のとおり、構成に関する規約などです。
240 java  unit-testing  junit 


6
単体テスト中にSpring @Valueを設定する
プログラムでフォームを検証するために使用される単純なBeanのユニットテストを記述しようとしています。Beanにはアノテーションが付けられ@Componentており、クラス変数が @Value("${this.property.value}") private String thisProperty; このクラス内の検証メソッドの単体テストを記述したいのですが、可能であれば、プロパティファイルを使用せずに記述したいと思います。これの背後にある私の推論は、プロパティファイルから取得している値が変更された場合、テストケースに影響を与えないようにするためです。私のテストケースでは、値自体ではなく、値を検証するコードをテストしています。 テストクラス内でJavaコードを使用してJavaクラスを初期化し、そのクラス内にSpring @Valueプロパティを設定して、それを使用してテストする方法はありますか? このハウツーは近いようですが、まだプロパティファイルを使用しています。私はむしろそれがすべてJavaコードであることを望みます。

23
Javaで子の順序を無視して2つのJSONオブジェクトが等しいかどうかをテストする
特にWebサービスから返されるJSONのユニットテストのために、子の順序を無視して2つのJSONオブジェクトの比較をサポートするJSON解析ライブラリを探しています。 主要なJSONライブラリのいずれかがこれをサポートしていますか?org.jsonライブラリは単に参照比較を行います。
233 java  json  junit 

13
IntelliJ 10.5でテストを実行すると、「NoSuchMethodError:org.hamcrest.Matcher.describeMismatch」が発生する
JUnit-dep 4.10とHamcrest 1.3.RC2を使用しています。 次のようなカスタムマッチャーを作成しました。 public static class MyMatcher extends TypeSafeMatcher<String> { @Override protected boolean matchesSafely(String s) { /* implementation */ } @Override public void describeTo(Description description) { /* implementation */ } @Override protected void describeMismatchSafely(String item, Description mismatchDescription) { /* implementation */ } } Antを使用してコマンドラインから実行すると、完全に正常に動作します。しかし、IntelliJから実行すると、次のエラーで失敗します。 java.lang.NoSuchMethodError: org.hamcrest.Matcher.describeMismatch(Ljava/lang/Object;Lorg/hamcrest/Description;)V at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:18) at …

9
モッキート。メソッドの引数を確認する
私はこれについてグーグルで調べましたが、関連するものは何も見つかりませんでした。私はこのようなものを持っています: Object obj = getObject(); Mockeable mock= Mockito.mock(Mockeable.class); Mockito.when(mock.mymethod(obj )).thenReturn(null); Testeable testableObj = new Testeable(); testableObj.setMockeable(mock); command.runtestmethod(); ここで、mymethod(Object o)内runtestmethod()で呼び出されたが、o他ではなくObject で呼び出されたことを確認します。しかし、私は、たとえば、次のように、検証に置いたものは何でも、常にテストに合格します。 Mockito.verify(mock.mymethod(Mockito.eq(obj))); または Mockito.verify(mock.mymethod(Mockito.eq(null))); または Mockito.verify(mock.mymethod(Mockito.eq("something_else"))); 私はいつもテストに合格します。どうすればその検証を実行できますか(可能な場合)? ありがとうございました。

24
最終クラスをmockitoでモックする方法
私はこのような最終クラスを持っています: public final class RainOnTrees{ public void startRain(){ // some code here } } 私はこのクラスをこのような他のクラスで使用しています: public class Seasons{ RainOnTrees rain = new RainOnTrees(); public void findSeasonAndRain(){ rain.startRain(); } } そして、JUnitテストクラスでクラスSeasons.javaをモックしたいのですRainOnTrees。Mockitoでこれを行うにはどうすればよいですか?
218 java  junit  mockito 


23
IntelliJ IDEA with Junit 4.7“ !!! JUnitバージョン3.8以降が必要です:」
IntelliJ IDEAで次のテストを実行しようとすると、メッセージが表示されます。 「!!! JUnitバージョン3.8以降が必要です:」 これはIntelliJ IDEA 9で取り組んでいるAndroidプロジェクトであることに注意してください。 public class GameScoreUtilTest { @Test public void testCalculateResults() throws Exception { final Game game = new Game(); final Player player1 = new Player(); { final PlayedHole playedHole = new PlayedHole(); playedHole.setScore(1); game.getHoleScoreMap().put(player1, playedHole); } { final PlayedHole playedHole = new PlayedHole(); playedHole.setScore(3); game.getHoleScoreMap().put(player1, …

25
ロガーのメッセージでJUnitアサートを行う方法
Javaロガーを呼び出してそのステータスを報告するテスト対象のコードがあります。JUnitテストコードで、このロガーに正しいログエントリが作成されたことを確認します。次の行に沿って何か: methodUnderTest(bool x){ if(x) logger.info("x happened") } @Test tester(){ // perhaps setup a logger first. methodUnderTest(true); assertXXXXXX(loggedLevel(),Level.INFO); } これは特別に調整されたロガー(またはハンドラー、フォーマッター)を使用して実行できると思いますが、既存のソリューションを再利用したいと思います。(そして、正直に言うと、ロガーからlogRecordにアクセスする方法はわかりませんが、それが可能であると想定してください。)
206 java  logging  junit  assert 

7
Javaジェネリックにはいつ<が必要ですか?<T>の代わりにT>を拡張し、切り替えの欠点はありますか?
次の例があるとします(JUnitとHamcrestマッチャーを使用)。 Map&lt;String, Class&lt;? extends Serializable&gt;&gt; expected = null; Map&lt;String, Class&lt;java.util.Date&gt;&gt; result = null; assertThat(result, is(expected)); これは、以下のJUnit assertThatメソッドシグネチャでコンパイルされません。 public static &lt;T&gt; void assertThat(T actual, Matcher&lt;T&gt; matcher) コンパイラのエラーメッセージは次のとおりです。 Error:Error:line (102)cannot find symbol method assertThat(java.util.Map&lt;java.lang.String,java.lang.Class&lt;java.util.Date&gt;&gt;, org.hamcrest.Matcher&lt;java.util.Map&lt;java.lang.String,java.lang.Class &lt;? extends java.io.Serializable&gt;&gt;&gt;) ただし、assertThatメソッドシグネチャを次のように変更した場合: public static &lt;T&gt; void assertThat(T result, Matcher&lt;? extends T&gt; matcher) その後、コンパイルが機能します。 したがって、3つの質問: 現在のバージョンが正確にコンパイルされないのはなぜですか?ここでは共分散の問題を漠然と理解していますが、説明が必要な場合は、説明できませんでした。 …
205 java  generics  junit 



5
Mockitoモックオブジェクトに、次に呼び出されたときに別のオブジェクトを返すように指示するにはどうすればよいですか?
だから、私はモックオブジェクトをクラスレベルで静的変数として作成しています...あるテストでFoo.someMethod()は特定の値を返し、別のテストでは別の値を返します。私が抱えている問題は、これを正しく機能させるためにモックを再構築する必要があるようだということです。モックの再構築を避け、各テストで同じオブジェクトを使用するだけです。 class TestClass { private static Foo mockFoo; @BeforeClass public static void setUp() { mockFoo = mock(Foo.class); } @Test public void test1() { when(mockFoo.someMethod()).thenReturn(0); TestObject testObj = new TestObject(mockFoo); testObj.bar(); // calls mockFoo.someMethod(), receiving 0 as the value } @Test public void test2() { when(mockFoo.someMethod()).thenReturn(1); TestObject testObj = new TestObject(mockFoo); …

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