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

testCalculationTest成员未使用且似乎没有必要-也许考虑简单地删除该行,然后解决该问题的其他答案和评论中提出的其他问题?

08-19 04:20