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

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

4
setUp()とsetUpBeforeClass()の違い
JUnitでユニットテストを行う場合、似た2つの方法がsetUp()ありsetUpBeforeClass()ます。これらの方法の違いは何ですか?また、違いは何であるtearDown()とはtearDownAfterClass()? 署名は次のとおりです。 @BeforeClass public static void setUpBeforeClass() throws Exception { } @AfterClass public static void tearDownAfterClass() throws Exception { } @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { }
159 java  junit 

6
JUnitアサーションで配列を比較すると、組み込みの簡潔な方法ですか?
JUnitで2つの同じような型の配列に対して等しいアサーションを行うための簡潔で組み込みの方法はありますか?デフォルトでは(少なくともJUnit 4では)、配列オブジェクト自体でインスタンス比較を行うようです。 EG、動作しません: int[] expectedResult = new int[] { 116800, 116800 }; int[] result = new GraphixMask().sortedAreas(rectangles); assertEquals(expectedResult, result); もちろん、私はそれを手動で行うことができます: assertEquals(expectedResult.length, result.length); for (int i = 0; i < expectedResult.length; i++) assertEquals("mismatch at " + i, expectedResult[i], result[i]); ..しかし、もっと良い方法はありますか?
158 java  arrays  junit  assertions 

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 

5
JUnitの混乱:「extends TestCase」または「@Test」を使用しますか?
JUnitの適切な使用(または少なくともドキュメント)は非常に混乱していることがわかりました。この質問は、将来の参照と実際の質問の両方として機能します。 私が正しく理解していれば、JUnitテストを作成して実行するには、主に2つの方法があります。 アプローチA(JUnit 3スタイル): TestCaseを拡張するクラスを作成し、単語でテストメソッドを開始しtestます。(Eclipseで)JUnitテストとしてクラスを実行すると、単語で始まるすべてのメソッドtestが自動的に実行されます。 import junit.framework.TestCase; public class DummyTestA extends TestCase { public void testSum() { int a = 5; int b = 10; int result = a + b; assertEquals(15, result); } } アプローチB(JUnit 4スタイル):「通常の」クラスを@Test作成し、メソッドに注釈を付加します。メソッドを単語で始める必要はないことに注意してくださいtest。 import org.junit.*; import static org.junit.Assert.*; public class DummyTestB { @Test public void Sum() …

5
Hamcrestでリストが空でないことを確認する
誰もがリストを使用して空であるかどうかを確認する方法を知っていた場合、私は思っていたassertThat()とMatchers? 私がJUnitを使用するのを見ることができる最良の方法: assertFalse(list.isEmpty()); しかし、私はこれをハムクレストで行う方法があることを望んでいました。


4
MockitoのargumentCaptorの例
誰でも、org.mockito.ArgumentCaptorクラスの使用方法と、mockitoで提供される単純なマッチャーとの違いを示す例を教えてください。 私は提供されたmockito文書を読みましたが、それらはそれを明確に示していません。それらのどれも明確に説明することはできません。

1
Javaは、Mockitoでvoidメソッド呼び出しをn回検証します
DAO内で(void)メソッドが呼び出されていることを確認しようとしています。その時点までの結果のリストを送信し、リストをリセットして続行するコミットポイントを使用しています。リストに4つの項目があり、コミットポイントが1であるとします。「send」メソッドが4回呼び出されることを期待します。次のように記述することで、メソッドが1回呼び出されることを確認できます Mockito.verify(mock).send() 合格ですが、呼び出された回数を確認したいと思います。と思う Mockito.verify(mock.send(), times(4)) 十分ですが、検証するためのパラメーターが正しくないと表示されています。 ちなみに、変更Mockito.verify(mock).send()し Mockito.verify(mock.send())たりMockito.verify((mock).send())同じエラーが出たりした 場合 。これについての考え?

12
JUnitを使用して環境変数に依存するコードをテストする方法は?
環境変数を使用するJavaコードがあり、コードの動作はこの変数の値に依存します。このコードを環境変数のさまざまな値でテストしたいと思います。JUnitでこれを行うにはどうすればよいですか? Javaで環境変数を設定する一般的な方法をいくつか見てきましたが、特にテストが互いに干渉してはならないことを考えると、Javaのユニットテストの側面に関心があります。



30
エラー:(23、17)解決に失敗しました:junit:junit:4.12
Android Studioで新しいプロジェクトを作成するたびに、常に次のことが発生するのはなぜですか。 エラー:(23、17)解決に失敗しました:junit:junit:4.12? testCompile 'junit:junit:4.12'依存関係を削除しても問題はもうありません。 build.gradle apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.okedroid.myapplication" minSdkVersion 17 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile …

6
JUnitの@ Before / @ Afterはどのような順序で呼び出されますか?
統合テストスイートがあります。IntegrationTestBaseすべてのテストを拡張するためのクラスがあります。この基本クラスには、APIおよびDB接続を確立するための@Before(public void setUp())および@After(public void tearDown())メソッドがあります。私が行ってきたことは、単に各テストケースでは、これら2つのメソッドをオーバーライドして呼んでいるsuper.setUp()とsuper.tearDown()。ただし、誰かがスーパーを呼び出すのを忘れたり、間違った場所に置いたりして例外がスローされ、最後に何かをスーパーを呼び出すのを忘れた場合、これは問題を引き起こす可能性があります。 私は何をしたい作りであるsetUpとtearDown、基本クラスのメソッドをfinalして、ちょうど私たち自身の注釈付きの追加@Beforeや@After方法を。いくつかの初期テストを行うと、常に次の順序で呼び出されるようです。 Base @Before Test @Before Test Test @After Base @After ただし、注文が保証されておらず、問題が発生する可能性があることを少し心配しています。私は周りを見回し、その主題について何も見ていません。私がそれを行うことができ、問題がないかどうか誰かが知っていますか? コード: public class IntegrationTestBase { @Before public final void setUp() { *always called 1st?* } @After public final void tearDown() { *always called last?* } } public class MyTest extends IntegrationTestBase { @Before public …

11
テストにJUnitを使用する理由
たぶん私の質問は初心者のものですが、私が使用する状況を本当に理解できません junit? 単純なアプリケーションを作成する場合でも、大きなアプリケーションを作成する場合でも、System.outステートメントを使用してテストします。 JUnitを使用してテストクラスを作成する必要があります。同じメソッドを呼び出す必要がある場合、プロジェクトに不要なフォルダーを作成し、それらが返すものを確認すると、すべてに注釈を付けるオーバーヘッドが発生します。 クラスをSystem.out作成して一度にテストしますが、Testクラスを作成しないのはなぜですか? PS。私は今学んでいる大きなプロジェクトに取り組んだことがありません。 それで、目的は何ですか?
131 java  unit-testing  junit  tdd 


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