I have two files:
Calc.java
public class Calc {
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
}
and TestCalc.java
import org.junit.* ;
import static org.junit.Assert.* ;
public class TestCalc {
Calc c = new Calc();
@Test
public void testSum() {
// 6 + 9 = 15
int expected = 15;
int actual = c.add(6, 9);
assertEquals("adding 6 and 9", expected, actual);
}
@Test
public void testSubstr() {
// 18 - 3 = 15
int expected = 15;
int actual = c.subtract(18, 3);
assertEquals("subtracting 3 from 18", expected, actual);
}
}
They compile without errors:
javac -cp .:junit-4.11.jar TestCalc.java
javac -cp .:junit-4.11.jar Calc.java
But when I’m trying to run, I’m getting an error:
java -cp .:junit-4.11.jar TestCalc
Exception in thread "main" java.lang.NoSuchMethodError: main
Could someone, please, explain why? And how to fix that?
You should use the JUnit’s runners to run the test case classes.
JUnitCore will run the tests in your test class.