-1

I am new to Junit, and I am having issues creating a Junit Test Case. It is causing the error java.lang.NoClassDefFound, as well as a lot of other errors.

I have the following code in a class called Arithmetic:

 public class Arithmetic {
  public static int addition(number, number2) { 
        return number + number2;
  }

The Junit test code:

import static org.junit.Assert.*;
import org.junit.Test;


public class TestFailure {

@Test
public void test() throws Exception {
Arithmetic test = new Arithmetic();
int output = test.addition(5,8);
assertEquals(13, output);
}

}

This returns the following error:

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.junit.internal.builders.JUnit4Builder.runnerForClass                      (JUnit4Builder.java:10)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:33)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

 Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 25 more

Note that I have downloaded the junit-4.12.jar and have it installed where my projects are. It is also in my Referenced Libraries as junit-4.12.jar, with a drop down list of many more.

Baleroc
  • 167
  • 4
  • 15
  • possible duplicate of [java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing](http://stackoverflow.com/questions/14539072/java-lang-noclassdeffounderror-org-hamcrest-selfdescribing) – kevcodez Jul 09 '15 at 10:43

3 Answers3

1

JUnit is depending on Hamcrest, add that to the path as well.

Stefan
  • 12,108
  • 5
  • 47
  • 66
0

Added hamcrest-all-1.3.jar to class path.

hamcrest jar

Prateek Kapoor
  • 947
  • 9
  • 18
0

You need a Hamcrest. See JUnit's Getting started article.

Stefan Birkner
  • 24,059
  • 12
  • 57
  • 72