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

一般的なJunit Javaユニットテストフレームワークのバージョン4

30
JUnit 4テストで特定の例外がスローされるとどのように主張しますか?
JUnit4を慣用的に使用して、一部のコードが例外をスローすることをテストするにはどうすればよいですか? 私は確かにこのようなことをすることができますが: @Test public void testFooThrowsIndexOutOfBoundsException() { boolean thrown = false; try { foo.doStuff(); } catch (IndexOutOfBoundsException e) { thrown = true; } assertTrue(thrown); } これらの種類の状況では、アノテーションやAssert.xyzなど、JUnitに比べてそれほど扱いづらくなく、はるかに強力なものがあることを思い出します。
2000 java  exception  junit  junit4  assert 

4
@ Before、@ BeforeClass、@ BeforeEach、@ BeforeAllの違い
主な違いは何ですか @Before そして @BeforeClass そしてJUnit 5 @BeforeEachと@BeforeAll @After そして @AfterClass JUnitに よると、Api@Beforeは次の場合に使用されます。 テストを作成する場合、いくつかのテストを実行するには、類似のオブジェクトを作成する必要があることがよくあります。 一方@BeforeClass、データベース接続を確立するために使用できます。しかし@Before、同じことを行うことができませんでしたか?

29
Mavenが実行するJUnitテストを見つけられない
私はMavenプログラムを持っています、それはうまくコンパイルします。私が実行するmvn testと、テストは実行されません(TESTsヘッダーの下にThere are no tests to run.)。 この問題を非常に簡単な設定で再現しました-X。以下に含めるだけでなく、で実行したときの出力も含めます。 単体テストはeclipseから正常に実行されます(デフォルトのjunitパッケージを使用する場合と、代わりにmavenによってダウンロードされたjunit.jarを含める場合)。また、mvn test-compileはtest-classesの下でクラスを正しく作成します。私はこれをOSX 10.6.7とMaven 3.0.2およびjava 1.6.0_24で実行しています。 ディレクトリ構造は次のとおりです。 /my_program/pom.xml /my_program/src/main/java/ClassUnderTest.java /my_program/src/test/java/ClassUnderTestTests.java pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>my_group</groupId> <artifactId>my_program</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>My Program</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> …
416 java  maven  junit  junit4  maven-3 

18
JUnit4でテストメソッドを特定の順序で実行する方法
@Test特定の順序で注釈が付けられたテストメソッドを実行したい。 例えば: public class MyTest { @Test public void test1(){} @Test public void test2(){} } 実行するtest1()前に必ず実行したいのですtest2()がMyTest、のような注釈が見つかりませんでした@Test(order=xx)。 JUnitの作者が注文機能を望まない場合、それはJUnitにとって非常に重要な機能だと思います。なぜですか?

11
JUnit Testアノテーションで例外メッセージをアサートするにはどうすればよいですか?
@Test注釈付きのJUnitテストをいくつか作成しました。テストメソッドがチェックされた例外をスローし、例外とともにメッセージをアサートしたい場合、JUnit @Testアノテーションでそれを行う方法はありますか?私の知る限り、JUnit 4.7はこの機能を提供していませんが、将来のバージョンではこの機能を提供しますか?.NETでは、メッセージと例外クラスをアサートできることを知っています。Javaの世界で同様の機能を探しています。 これが私が欲しいものです: @Test (expected = RuntimeException.class, message = "Employee ID is null") public void shouldThrowRuntimeExceptionWhenEmployeeIDisNull() {}

6
2つのJUnitアサートクラスの違い
JUnitフレームワークには2つのAssertクラス(明らかに異なるパッケージ内)が含まれており、それぞれのメソッドは非常に似ているように見えます。これがなぜなのか誰かが説明できますか? 私が言及してるクラスは次のとおりjunit.framework.Assertとorg.junit.Assert。


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 …


7
JavaのassertEqualsメソッドは信頼できますか?
==2つを比較すると、いくつかの問題があることがわかりStringsます。それString.equals()はより良いアプローチのようです。さて、私はJUnitテストを行っており、私の傾向はを使用することassertEquals(str1, str2)です。これは、2つの文字列に同じコンテンツが含まれていることをアサートする信頼できる方法ですか?私はを使用しassertTrue(str1.equals(str2))ますが、失敗した場合の期待値と実際の値を確認するメリットはありません。 関連するノートでは、誰もが問題を明確に説明しているページまたはスレッドへのリンクを持っていますかstr1 == str2?
199 java  string  junit  junit4 

4
Junit @Ruleはどのように機能しますか?
大量のコードのテストケースを作成したいのですが、JUnit @Ruleアノテーション機能の詳細を知りたいので、それを使用してテストケースを作成できます。簡単な例を通してその機能の詳細な説明を提供するいくつかの良い答えまたはリンクを提供してください。
195 java  junit  junit4  junit-rule 

6
システムクラスのモック中にMockito + PowerMock LinkageError
私はそのようなコードスニペットを持っています: @RunWith(PowerMockRunner.class) @PrepareForTest({Thread.class}) public class AllMeasuresDataTest { @Before public void setUp() throws Exception { } @Test public void testGetMeasures() { AllMeasuresData measure = new AllMeasuresData(); assertEquals(measure.getMeasures(), null); HashMap<String, Measure> map = new HashMap<String, Measure>(); measure.setMeasures(map); assertEquals(measure.getMeasures(), map); measure.setMeasures(null); assertEquals(measure.getMeasures(), null); } @Test public void testAllMeasuresData() throws IOException { ClassLoader loader …

7
従来のassertXXX()-Methodsの代わりにHamcrest-MatcherとassertThat()を使用する理由
AssertクラスのJavaDocの例を見ると assertThat("Help! Integers don't work", 0, is(1)); // fails: // failure message: // Help! Integers don't work // expected: is <1> // got value: <0> assertThat("Zero is one", 0, is(not(1))) // passes 私は、大きなアドバンテージはないと思いassertEquals( 0, 1 )ます。 構成がさらに複雑になった場合のメッセージに適していますが、より多くの利点がわかりますか?読みやすさ?
153 java  testing  junit  junit4  hamcrest 


6
JUnit:統合テストとユニットテストの分割
私はJunitテストの負荷を継承しましたが、これらのテスト(ほとんどが機能していないことを除いて)は、実際の単体テストと統合テスト(外部システム、dbなどが必要)の混合です。 だから私はそれらを実際に分離する方法を考えているので、ユニットテストを素晴らしく迅速に実行でき、その後統合テストを実行できます。 オプションは... それらを別々のディレクトリに分割します。 (v3から)Junit4に移動し、クラスに注釈を付けてそれらを分離します。 ファイルの命名規則を使用して、クラス(AdapterATestとAdapterAIntergrationTest)を識別します。 3には、Eclipseに「選択したプロジェクト/パッケージまたはフォルダーですべてのテストを実行する」オプションがあるという問題があります。したがって、統合テストを実行するだけでは非常に困難になります。 2:開発者がユニットテストクラスで統合テストを作成し始める可能性があり、混乱するだけです。 1:最も近い解決策のように見えますが、私の直感はそこにもっと良い解決策があるはずだと言っています。 それが私の質問です。統合テストと適切な単体テストをどのように分解するのでしょうか。

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