package com.test;
public class Calculation {
public static int add(int n1, int n2)
{
return n1 + n2;
}
public static int sub(int n1, int n2)
{
return n1 * n2;
}
}
以上是我的课,
以下是我的JUnit测试课程
package com.test;
import static org.junit.Assert.*;
import org.junit.Test;
public class CalculationTest extends Calculation
{
CalculationTest test = new CalculationTest();
@Test
public void testadd()
{
assertEquals(9,Calculation.add(1,8));
}
public void testsub()
{
assertEquals(12,Calculation.sub(15,3));
}
}
您好,我们将不胜感激,我目前正在尝试在我的子测验中得到一个错误,因为这在我的课堂上是错误的,但是我目前所遇到的错误在我的junit的第9行上,这就是为什么我不知道为什么的原因导致错误。
CalculationTest测试=新的CalculationTest();
最佳答案
第9行,CalculationTest test = new CalculationTest();
,导致在创建新的CalculationTest
实例时调用默认构造函数。该代码声明一个CalculationTest
实例包含一个CalculationTest
实例。这很可能无限递归,实际上在我的计算机上确实如此,导致JVM抛出StackOverflowError
。test
的CalculationTest
成员未使用且似乎没有必要-也许考虑简单地删除该行,然后解决该问题的其他答案和评论中提出的其他问题?