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

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

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、同じことを行うことができませんでしたか?

11
JUnitがassertNotEqualsメソッドを提供しないのはなぜですか?
JUnit 4 assertEquals(foo,bar)がassertNotEqual(foo,bar)メソッドを提供せずに提供する理由を誰かが知っていますか? それが提供するassertNotSame(に相当assertSame)とassertFalse(に相当assertTrue)、彼らが含めて気にしなかったことを奇妙に思えますassertNotEqual。 ところで、JUnit-addonsが私が探しているメソッドを提供していることは知っています。好奇心から求めているだけです。
429 java  junit  assert 

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にとって非常に重要な機能だと思います。なぜですか?

12
System.out.println()のJUnitテスト
設計が不十分で、多くのエラーメッセージを標準出力に書き込んでいる古いアプリケーション用のJUnitテストを作成する必要があります。ときにgetResponse(String request)メソッドが正しく動作には、XML応答を返します。 @BeforeClass public static void setUpClass() throws Exception { Properties queries = loadPropertiesFile("requests.properties"); Properties responses = loadPropertiesFile("responses.properties"); instance = new ResponseGenerator(queries, responses); } @Test public void testGetResponse() { String request = "<some>request</some>"; String expResult = "<some>response</some>"; String result = instance.getResponse(request); assertEquals(expResult, result); } しかし、XMLの形式が正しくない場合や、要求を理解できない場合は、XML null出力が返され、標準出力にいくつかの情報が書き込まれます。 JUnitでコンソール出力をアサートする方法はありますか?次のようなケースをキャッチするには: System.out.println("match found: " …
370 java  console  junit 

4
JUnit 4のテストを条件付きで無視する
OK、@Ignoreアノテーションはテストケースを実行しないようにマークするのに適しています。 ただし、ランタイム情報に基づくテストを無視したい場合があります。例としては、特定の数のコアを備えたマシンで実行する必要がある同時実行テストがあるとします。このテストがユニプロセッサマシンで実行された場合、テストに合格することは(実行されていないため)正しくないだろうと思います。テストに失敗してビルドを中断するのは間違いです。 したがって、これは正しい結果のように見えるので、実行時にテストを無視できるようにしたいのです(テストフレームワークではビルドはパスできますが、テストが実行されなかったことを記録するため)。注釈によってこの柔軟性が得られないことはかなり確実であり、問​​題のクラスのテストスイートを手動で作成する必要があると思われます。ただし、ドキュメントではこれについて何も言及されておらず、APIを調べても、これがプログラムでどのように行われるかが明確ではありません(つまりTest、@Ignoreアノテーションによって作成されたインスタンスと同等のインスタンスなどをプログラムでどのように作成しますか?) 誰かが過去に同じようなことをしたことがある、または私がこれについて他にどうしたらいいかについて明るい考えを持っているなら、私はそれについて聞いて幸せです。

9
Mockito:メソッドをスパイしようとすると、元のメソッドが呼び出されます
Mockito 1.9.0を使用しています。JUnitテストでクラスの単一メソッドの動作を模擬したいので、 final MyClass myClassSpy = Mockito.spy(myInstance); Mockito.when(myClassSpy.method1()).thenReturn(myResults); 問題は、2行目myClassSpy.method1()で実際に呼び出されて例外が発生することです。モックを使用している唯一の理由は、後でmyClassSpy.method1()が呼び出されるたびに、実際のメソッドが呼び出されず、myResultsオブジェクトが返されるためです。 MyClassインターフェースでmyInstanceあり、重要な場合はその実装です。 このスパイ行為を修正するには何をする必要がありますか?
350 java  junit  mockito 


7
Mockito:メソッド内で作成されたオブジェクトでメソッドが呼び出されたことを確認する方法は?
モッキートは初めてです。 以下のクラスが与えられた場合、どのようにしてMockitoを使用して、someMethod呼び出された直後fooに呼び出されたかを確認できますか? public class Foo { public void foo(){ Bar bar = new Bar(); bar.someMethod(); } } 次の確認電話をかけたいのですが、 verify(bar, times(1)).someMethod(); どこbarの嘲笑インスタンスですBar。



23
MockitoモックをSpring Beanに注入する
JUnitでのユニットテストの目的で、MockitoモックオブジェクトをSpring(3+)Beanに挿入したいと思います。現在、私のBeanの依存関係は@Autowired、プライベートメンバーフィールドのアノテーションを使用して注入されています。 使用を検討しましたReflectionTestUtils.setFieldが、注入したいBeanインスタンスは実際にはプロキシであるため、ターゲットクラスのプライベートメンバーフィールドを宣言していません。テストのためだけにインターフェイスを変更するため、依存関係へのパブリックセッターを作成したくありません。 私はSpringコミュニティからのアドバイスに従いましたが、モックが作成されず、自動配線が失敗します。 <bean id="dao" class="org.mockito.Mockito" factory-method="mock"> <constructor-arg value="com.package.Dao" /> </bean> 現在発生しているエラーは次のとおりです。 ... Caused by: org...NoSuchBeanDefinitionException: No matching bean of type [com.package.Dao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: { @org...Autowired(required=true), @org...Qualifier(value=dao) } at org...DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(D...y.java:901) at org...DefaultListableBeanFactory.doResolveDependency(D...y.java:770) constructor-arg値を無効な値に設定しても、アプリケーションコンテキストの起動時にエラーは発生しません。

13
JUnitのsrc / test / resourcesディレクトリのパスを取得する方法
私はsrc / test / resourcesからファイルをロードできることを知っています: getClass().getResource("somefile").getFile() しかし、どうすればsrc / test / resources ディレクトリへのフルパスを取得できますか。つまり、ファイルをロードしたくないので、ディレクトリのパスを知りたいだけなのですか。
275 java  junit 

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

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