2012-11-30 84 views
0

我有兩個文件:的JUnit虛位以待:異常線程 「main」 java.lang.NoSuchMethodError:主要

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; 
} 
} 

和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); 
    } 
    } 

他們編譯沒有錯誤:

javac -cp .:junit-4.11.jar TestCalc.java 
javac -cp .:junit-4.11.jar Calc.java 

但是當我試圖運行時,出現錯誤:

java -cp .:junit-4.11.jar TestCalc 

Exception in thread "main" java.lang.NoSuchMethodError: main 

請問某人,請解釋爲什麼?以及如何解決這個問題?

回答

1

您應該使用JUnit's runners運行測試用例類。

java -cp .:junit-4.11.jar org.junit.runner.JUnitCore TestCalc.java 

JUnitCore將在您的測試類中運行測試。

相關問題