「JUnit」の版間の差分
提供: Java入門
(相違点なし)
|
2015年9月13日 (日) 00:33時点における最新版
JUnitとは、Java のユニットテストフレームワークです。
読み方
- JUnit
- じぇーゆにっと
目次
概要
JUnitは、Javaで開発されたJavaのプログラムのユニットテストを自動化するためのフレームワークです。
インストール
FreeBSDの場合
$ sudo pkg install junit
ソースコード
Calculator.java
/* * Calculator.java * Copyright (C) 2015 kaoru <kaoru@localhost> */ public class Calculator { public int add(int a, int b) { return a+b; } }
CalculatorTest.java
/* * CalculatorTest.java * Copyright (C) 2015 kaoru <kaoru@localhost> */ import static org.junit.Assert.assertEquals; import org.junit.Test; import junit.framework.TestCase; public class CalculatorTest { @Test public void addExpression() { Calculator calculator = new Calculator(); int x = calculator.add( 1, 2 ); assertEquals(3, x); } }
Makefile
CP=".:/usr/local/share/java/classes/junit4.jar:/usr/local/share/java/classes/hamcrest1.3.jar" all: javac Calculator.java javac -cp "$(CP)" CalculatorTest.java java -cp \ "$(CP)" \ org.junit.runner.JUnitCore CalculatorTest
コンパイル
$ make
実行例
$ java -cp \ ".:/usr/local/share/java/classes/junit4.jar:/usr/local/share/java/classes/hamcrest1.3.jar" \ org.junit.runner.JUnitCore CalculatorTest JUnit version 4.12 . Time: 0.009 OK (1 test)
パッケージorg.junitは存在しません
-cpでjunit4.jarが指定できていないときにエラーが出ます。
エラー: パッケージorg.junitは存在しません
指定する方法は、以下の通りです。
javac -cp "/usr/local/share/java/classes/junit4.jar" ...
@Testのアノテーションが認識されない場合
import org.junit.Test; import junit.framework.TestCase;
のimportをしていないと、下記のエラーが出ます。
CalculatorTest.java:17: エラー: シンボルを見つけられません @Test ^ シンボル: クラス Test 場所: クラス CalculatorTest
おまけ
勢い余って、クラス名に . をつけてしまったときのエラーです。
JUnit version 4.12 .E Time: 0.007 There was 1 failure: 1) initializationError(org.junit.runner.JUnitCommandLineParseResult) java.lang.IllegalArgumentException: Could not find class [CalculatorTest.] at org.junit.runner.JUnitCommandLineParseResult.parseParameters(JUnitCommandLineParseResult.java:102) at org.junit.runner.JUnitCommandLineParseResult.parseArgs(JUnitCommandLineParseResult.java:50) at org.junit.runner.JUnitCommandLineParseResult.parse(JUnitCommandLineParseResult.java:44) at org.junit.runner.JUnitCore.runMain(JUnitCore.java:72) at org.junit.runner.JUnitCore.main(JUnitCore.java:36) Caused by: java.lang.ClassNotFoundException: CalculatorTest. at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at org.junit.internal.Classes.getClass(Classes.java:16) at org.junit.runner.JUnitCommandLineParseResult.parseParameters(JUnitCommandLineParseResult.java:100) ... 4 more FAILURES!!! Tests run: 1, Failures: 1