使用JUnit在netbeans中进行单元测试
我在NetBeans中使用JUnit运行了一个测试,得到了以下测试结果: 这是输出信息: 测试运行:0,失败:0,错误:2,运行时间:0336秒 -------------标准输出--------------------前卫tout après tout ------------------------------Testcase:calculette.calculMethodeTest:导致错误非法的局部变量 表24中的长度计算方法 calculette.calculette.main([Ljava/lang/String;)V java.lang.ClassFormatError:非法的本地变量表长度为24英寸 方法calculette.calculette.main([Ljava/lang/String;)V位于 calculette.calculMethodeTest.setUpClass(calculMethodeTest.java:24) Testcase:calculette.calculMethodeTest:导致错误为null 位于的java.lang.NullPointerException calculette.calculMethodeTest.tearDownClass(calculMethodeTest.java:30) 测试计算器测试失败的测试报告: C:\Users\Aimad\Documents\NetBeansProjects\Calculette\nbproject\build impl.xml:933: 某些测试失败;请参阅上面的详细信息。生成失败(总时间:12 秒) 这些错误意味着什么 这是测试方法:使用JUnit在netbeans中进行单元测试,netbeans,junit,Netbeans,Junit,我在NetBeans中使用JUnit运行了一个测试,得到了以下测试结果: 这是输出信息: 测试运行:0,失败:0,错误:2,运行时间:0336秒 -------------标准输出--------------------前卫tout après tout ------------------------------Testcase:calculette.calculMethodeTest:导致错误非法的局部变量 表24中的长度计算方法 calculette.calculette.main([L
**
* Test of main method, of class Calculette.
*/
@Test
public void testMain() {
System.out.println("main");
String[] args = null;
Calculette.main(args);
}
/**
* Test of multiplication method, of class Calculette.
*/
@Test
public void testMultiplication() {
System.out.println("multiplication");
double a = 2.0;
double b = -5.0;
Calculette instance = new Calculette();
double expResult = -10.0;
double result = instance.multiplication(a, b);
assertEquals(expResult, result, 0.0);
}
/**
* Test of division method, of class Calculette.
*/
@Test (expected = DivisionSurZeroException.class)
public void testDivision() {
System.out.println("division");
double a = 0.0;
double b = 0.0;
Calculette instance = new Calculette();
double expResult = a/b;
double result = instance.division(a, b);
assertEquals(expResult, result, 0.0);
a = 10;
b = 10;
expResult = a/b;
assertEquals(expResult, result, 0.0);
a = 10;
b = 0;
expResult = a/b;
assertEquals(expResult, result, 0.0);
a = 10;
b = -10;
expResult = a/b;
assertEquals(expResult, result, 0.0);
a = 0;
b = 10;
expResult = a/b;
assertEquals(expResult, result, 0.0);
a = 0;
b = -10;
expResult = a/b;
assertEquals(expResult, result, 0.0);
a = -10;
b = 10;
expResult = a/b;
assertEquals(expResult, result, 0.0);
a = -10;
b = 0;
expResult = a/b;
assertEquals(expResult, result, 0.0);
a = -10;
b = -10;
expResult = a/b;
assertEquals(expResult, result, 0.0);
}
/**
* Test of addition method, of class Calculette.
*/
@Test
public void testAddition() {
System.out.println("addition");
double a = -10.1;
double b = -70.0;
Calculette instance = new Calculette();
double expResult = a + b;
double result = instance.addition(a, b);
assertEquals(expResult, result, 0.0);
}
/**
* Test of soustraction method, of class Calculette.
*/
@Test
public void testSoustraction() {
System.out.println("soustraction");
double a = -60.5;
double b = 5.0;
Calculette instance = new Calculette();
double expResult = a - b;
double result = instance.soustraction(a, b);
assertEquals(expResult, result, 0.0);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Calculette().setVisible(true);
}
});
}
@Override
public double multiplication(double a, double b) {
return a*b;
}
@Override
public double division(double a, double b) {
if(b == 0) throw new DivisionSurZeroException();
else return a/b;
}
@Override
public double addition(double a, double b) {
return a + b;
}
@Override
public double soustraction(double a, double b) {
return a-b;
}
这是最初的方法:
**
* Test of main method, of class Calculette.
*/
@Test
public void testMain() {
System.out.println("main");
String[] args = null;
Calculette.main(args);
}
/**
* Test of multiplication method, of class Calculette.
*/
@Test
public void testMultiplication() {
System.out.println("multiplication");
double a = 2.0;
double b = -5.0;
Calculette instance = new Calculette();
double expResult = -10.0;
double result = instance.multiplication(a, b);
assertEquals(expResult, result, 0.0);
}
/**
* Test of division method, of class Calculette.
*/
@Test (expected = DivisionSurZeroException.class)
public void testDivision() {
System.out.println("division");
double a = 0.0;
double b = 0.0;
Calculette instance = new Calculette();
double expResult = a/b;
double result = instance.division(a, b);
assertEquals(expResult, result, 0.0);
a = 10;
b = 10;
expResult = a/b;
assertEquals(expResult, result, 0.0);
a = 10;
b = 0;
expResult = a/b;
assertEquals(expResult, result, 0.0);
a = 10;
b = -10;
expResult = a/b;
assertEquals(expResult, result, 0.0);
a = 0;
b = 10;
expResult = a/b;
assertEquals(expResult, result, 0.0);
a = 0;
b = -10;
expResult = a/b;
assertEquals(expResult, result, 0.0);
a = -10;
b = 10;
expResult = a/b;
assertEquals(expResult, result, 0.0);
a = -10;
b = 0;
expResult = a/b;
assertEquals(expResult, result, 0.0);
a = -10;
b = -10;
expResult = a/b;
assertEquals(expResult, result, 0.0);
}
/**
* Test of addition method, of class Calculette.
*/
@Test
public void testAddition() {
System.out.println("addition");
double a = -10.1;
double b = -70.0;
Calculette instance = new Calculette();
double expResult = a + b;
double result = instance.addition(a, b);
assertEquals(expResult, result, 0.0);
}
/**
* Test of soustraction method, of class Calculette.
*/
@Test
public void testSoustraction() {
System.out.println("soustraction");
double a = -60.5;
double b = 5.0;
Calculette instance = new Calculette();
double expResult = a - b;
double result = instance.soustraction(a, b);
assertEquals(expResult, result, 0.0);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Calculette().setVisible(true);
}
});
}
@Override
public double multiplication(double a, double b) {
return a*b;
}
@Override
public double division(double a, double b) {
if(b == 0) throw new DivisionSurZeroException();
else return a/b;
}
@Override
public double addition(double a, double b) {
return a + b;
}
@Override
public double soustraction(double a, double b) {
return a-b;
}
虽然
0.0
对于测试双重数学来说不是一个非常有意义的增量(小的、正的、非零的数字是您通常想要的,请看这里的一些),但我认为这不是错误的原因。这只会导致测试意外失败
这个问题似乎与Java 7中字节码验证器的相关更改有关。我认为您可以通过传递参数来解决这个问题
-XX:-UseSplitVerifier
(如果您需要有关如何设置这些参数的帮助,可以参考此文档)这意味着没有代码就什么都没有methods@AngryDuck测试方法还是原始方法?老实说,两者都很好,但更重要的是原始方法当然只是为了显示相关代码,而不是发布数百条lines@AngryDuck好的,请看我对我的帖子所做的修改