<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wikippe.e-do-match.com/index.php?action=history&amp;feed=atom&amp;title=JUnit</id>
	<title>JUnit - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wikippe.e-do-match.com/index.php?action=history&amp;feed=atom&amp;title=JUnit"/>
	<link rel="alternate" type="text/html" href="https://wikippe.e-do-match.com/index.php?title=JUnit&amp;action=history"/>
	<updated>2026-08-14T10:16:50Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wikippe.e-do-match.com/index.php?title=JUnit&amp;diff=165762&amp;oldid=prev</id>
		<title>59.190.3.9: 最新バージョンの更新 4.10-&gt;4.11</title>
		<link rel="alternate" type="text/html" href="https://wikippe.e-do-match.com/index.php?title=JUnit&amp;diff=165762&amp;oldid=prev"/>
		<updated>2013-06-06T22:37:25Z</updated>

		<summary type="html">&lt;p&gt;最新バージョンの更新 4.10-&amp;gt;4.11&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Software &lt;br /&gt;
| name                   = JUnit  &lt;br /&gt;
| logo                   = &lt;br /&gt;
| screenshot             = &lt;br /&gt;
| caption                = &lt;br /&gt;
| developer              = [[Kent Beck]], [[Erich Gamma]], David Saff &lt;br /&gt;
| latest release version = 4.11&lt;br /&gt;
| latest release date    = {{release date|2012|11|14}}&lt;br /&gt;
| operating system       = [[クロスプラットフォーム]] &lt;br /&gt;
| programming language   = [[Java]]&lt;br /&gt;
| genre                  = [[Unit]]テストツール&lt;br /&gt;
| license                = [[Common Public License]] &lt;br /&gt;
| website                = http://junit.org&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;JUnit&amp;#039;&amp;#039;&amp;#039;とは[[Java]]で開発された[[プログラム (コンピュータ)|プログラム]]においてユニットテスト（単体テスト）の自動化を行うためのフレームワークである。&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
[[Smalltalk]] のためのユニットテストのフレームワークであるSUnitをもとにして、[[エーリヒ・ガンマ]]と、SUnitの開発者の[[ケント・ベック]]が中心となって開発された。&lt;br /&gt;
&lt;br /&gt;
単体でも動作可能だが、[[Apache Ant]]や[[統合開発環境Eclipse|Eclipse]]のプラグインからも利用可能である。[[エクストリーム・プログラミング]]などの、[[アジャイルソフトウェア開発]]のいくつかの開発手法では、テスト重視が推奨されており紹介されることが多い。&lt;br /&gt;
&lt;br /&gt;
Java以外の言語向けには[[xUnit]]が存在する。&lt;br /&gt;
&lt;br /&gt;
== JUnitが推奨される理由 ==&lt;br /&gt;
* 一度作成すればすばやくテスト可能である。&lt;br /&gt;
* その後はテストコードを標本とすることでバグ訂正が容易となる。&lt;br /&gt;
* テストコードを見れば仕様が一目瞭然となる。&lt;br /&gt;
* 誰でも同じテストを行えるようになる。&lt;br /&gt;
* 独自のテストコードによるテスト作成の手間を省ける。&lt;br /&gt;
また、{{要出典範囲|作者は「なによりも、テスト中に現れる緑色のバーが満タンになるのを見ると気分が良くなる」と言っている|date=2012年6月}}。&lt;br /&gt;
&lt;br /&gt;
== JUnitの問題点 ==&lt;br /&gt;
* 仕様変更ごとにテストコードを作り直さなければならない。&lt;br /&gt;
**[[Eclipse (統合開発環境)|Eclipse]]などの[[統合開発環境|IDE]]を使うことで、テストコードの再作成によって生じる手間を軽減することもできる。&lt;br /&gt;
**[[エクストリーム・プログラミング]](XP)などのテスト駆動開発の開発形態の場合、問題が解消される場合がある。なぜなら、[[テスト駆動開発]]では、テストコード自体が仕様であるという考え方に立つからである。&lt;br /&gt;
* テストコードの作成に時間がかかる。&lt;br /&gt;
**EclipseなどのIDEを使うことでテストコードの作成を高速化することもできる。&lt;br /&gt;
**「テストは機能テストであり、内部ロジックの確認ではない」という考え方に立つと問題が解消される場合がある。&lt;br /&gt;
&lt;br /&gt;
== JUnit4の新機能 ==&lt;br /&gt;
JUnit4は、[[Java Platform, Standard Edition|Java SE]] 5から[[アノテーション]]が利用可能になったため、従来の命名規則に縛られることがなくなり、さらに使いやすくなった。&lt;br /&gt;
従来は、テストクラス名は&amp;lt;code&amp;gt;Test&amp;lt;/code&amp;gt;で終わる必要があった。テストしたい[[メソッド (計算機科学)|メソッド]]をテストするメソッド名には、&amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt;の接頭辞を付ける必要があった。JUnit4からは、&amp;lt;code&amp;gt;TestCase#setUp()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TestCase#tearDown()&amp;lt;/code&amp;gt;メソッドをオーバーライドする必要は無くなり、かわりに、&amp;lt;code&amp;gt;setUp()&amp;lt;/code&amp;gt;に相当するメソッドには@Before&amp;lt;/code&amp;gt;アノテーションをつけ、&amp;lt;code&amp;gt;tearDown()&amp;lt;/code&amp;gt;に相当するメソッドには&amp;lt;code&amp;gt;@After&amp;lt;/code&amp;gt;アノテーションをつけるだけで済むようになった。さらに、メソッドに&amp;lt;code&amp;gt;@BeforeClass&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;@AfterClass&amp;lt;/code&amp;gt;アノテーションをつけることで、テストクラス実行前と実行後に実行したいメソッドを作ることも可能になった。&lt;br /&gt;
&lt;br /&gt;
=== JUnit4から利用可能になったアノテーション ===&lt;br /&gt;
* @Test – そのメソッドがテストメソッドであることを示す。このメソッドにテストを記述する。従来のJUnitでメソッド名が&amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt;で始まるメソッドと同じ。&lt;br /&gt;
* @Before – このアノテーションが付加されたメソッドは、@Testアノテーションが付いたメソッドを実行するたびに事前に実行されることを意味する。JUnit4以前の&amp;lt;code&amp;gt;setup()&amp;lt;/code&amp;gt;メソッドと同じ。&lt;br /&gt;
* @After – このアノテーションが付加されたメソッドは、@Testアノテーションが付いたメソッドを実行するたびに、必ず後から実行されることを意味する。JUnit4以前の&amp;lt;code&amp;gt;tearDown()&amp;lt;/code&amp;gt;メソッドと同じ。&lt;br /&gt;
* @BeforeClass – このアノテーションが付加されたメソッドは、そのテストクラスを呼び出す前に実行される。&lt;br /&gt;
* @AfterClass – このアノテーションが付加されたメソッドは、そのテストクラスを呼び出した後に実行される。&lt;br /&gt;
&lt;br /&gt;
== JUnitから派生したツール/関連ツール ==&lt;br /&gt;
&lt;br /&gt;
JUnitから派生したツールを下記に示す。&lt;br /&gt;
&lt;br /&gt;
* [[TestNG]] - &amp;#039;Test the NextGeneration&amp;#039;の略とされている。Java SE 5から追加された[[アノテーション]]を利用して、[[クラス (コンピュータ)|クラス]]や[[メソッド (計算機科学)|メソッド]]にTest/testと命名する必要がなくなった。JUnit4では、同様に命名規則が緩くなった。他にもJUnit4では使用できない機能が追加されている&amp;lt;ref&amp;gt;参考 [http://www.ibm.com/developerworks/jp/java/library/j-cq08296/ コード品質を追求する: JUnit 4 対 TestNG 大規模なテストでは TestNG のほうが優れたフレームワークになる理由]&amp;lt;/ref&amp;gt;。&lt;br /&gt;
* JxUnit - JUnitはprivateなメソッドをテストできないが、JxUnitはテスト可能。内部で[[リフレクション]]を利用している。&lt;br /&gt;
* [[Jakarta Cactus]] - [[Servlet]]の単体テストだけでなく、統合テストを実行できる。&lt;br /&gt;
* [[MockObject]] - テスト用にオブジェクトを偽装する。&lt;br /&gt;
* [[djUnit]] - JUnitのテストをそのまま実行でき、カバレッジレポートの出力などができる。&lt;br /&gt;
&lt;br /&gt;
== 脚注 ==&lt;br /&gt;
{{脚注ヘルプ}}&amp;lt;references /&amp;gt;&lt;br /&gt;
== 関連項目 ==&lt;br /&gt;
* [[アジャイルソフトウェア開発]]&lt;br /&gt;
** [[エクストリーム・プログラミング]]&lt;br /&gt;
* [[Java]]&lt;br /&gt;
* [[xUnit]]&lt;br /&gt;
* [[ソフトウェアテスト]]&lt;br /&gt;
* [[TestNG]]&lt;br /&gt;
&lt;br /&gt;
== 外部リンク ==&lt;br /&gt;
* [http://www.junit.org/ JUnit]（英語）&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:しえいゆにつと}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Javaプラットフォーム]]&lt;br /&gt;
[[Category:ソフトウェアテスティング]]&lt;br /&gt;
[[Category:ソフトウェア開発ツール]]&lt;br /&gt;
[[Category:プログラミング]]&lt;/div&gt;</summary>
		<author><name>59.190.3.9</name></author>
	</entry>
</feed>