JUnit

提供: Java入門
移動: 案内検索
スポンサーリンク

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

関連項目



スポンサーリンク