JUnit测试不承认我的功能(通用功能)

问题描述:

package Comparar; 

import java.util.*; 

public class Exercici { 

    public void Exercici(){ 

    } 

    public static <E extends Comparable <E>> int numMinors(E e, Iterator<E> it){ 
     int numMenors = 0; 
     while(it.hasNext()){ 
      int comparacio = e.compareTo(it.next()); 
      if (comparacio == -1){ 
       numMenors += 1; 
      } 
     } 
     return numMenors; 
    } 

    public static <E extends Comparable <E>> int numMinors(Comparator<E> comp, E e, Iterator<E> it){ 
     int numMenors =0; 
     while (it.hasNext()){ 
      int comparacio = comp.compare(e, it.next()); 
      if(comparacio == -1){ 
       numMenors += 1; 
      } 
     } 
     return numMenors; 
    } 

} 

单元测试类:JUnit测试不承认我的功能(通用功能)

import java.util.*; 
import org.junit.After; 
import org.junit.AfterClass; 
import org.junit.Before; 
import org.junit.BeforeClass; 
import org.junit.Test; 
import static org.junit.Assert.*; 

public class ExerciciTest { 

    public ExerciciTest() { 

    } 

    @Test 
    public void compararCosesComparables() { 
     int num = 0; 

     Bottle b1 = new Bottle(0.33, 10, "Agua de Oro", "Dubai"); 
     Bottle b2 = new Bottle(1.5, 1, "asdf", "Rabat"); 
     Bottle b3 = new Bottle(2.5, 1.5, "qwerty", "Londres"); 
     Bottle b4 = new Bottle(5, 2, "poiuy", "Paris"); 
     Bottle b5 = new Bottle(2.5, 2, "Botella", "EEUU"); 

     List<Bottle> alb = new ArrayList<>(); 
     Iterator<Bottle> it = alb.iterator(); 
     alb.add(b1); 
     alb.add(b2); 
     alb.add(b3); 
     alb.add(b4); 

     num = numMinors(b5, it); //Error cannot find symbol 

    } 

    @Test 
    public void compararCosesAmbComparador() { 
     int num = 0; 

     Bottle b1 = new Bottle(0.33, 10, "Gold water", "Dubai"); 
     Bottle b2 = new Bottle(1.5, 1, "asdf", "Rabat"); 
     Bottle b3 = new Bottle(2.5, 1.5, "qwerty", "Londres"); 
     Bottle b4 = new Bottle(5, 2, "poiuy", "Paris"); 
     Bottle b5 = new Bottle(2.5, 2, "Botella", "EEUU"); 

     ArrayList<Bottle> alb = new ArrayList<>(); 
     BottleComparator comp = new BottleComparator(); 
     Iterator<Bottle> it = alb.iterator(); 

     alb.add(b1); 
     alb.add(b2); 
     alb.add(b3); 
     alb.add(b4); 

     num = numMinors(comp, b5, it); //Error cannot find symbol 

    } 

} 

所以我得到了3个班,BottleComparator它实现了比较,瓶,它实现可比性和exercici这是包含我被要求做的方法的类。

问题是测试类似乎不能识别我的函数numMinors,我已经尝试将所有文​​档放在另一个包中,并关闭项目并再次打开它。任何线索?

(我仍然需要投入对测试断言功能)

错误消息:

找不到符号

符号:方法numMinors(......)

位置:类exerciciTest

numMinors不是您的课程ExerciciTest的静态方法。这是您的班级Exercici的静态方法。

所以你可以做Exercici.numMinors(...)但不是ExerciciTest.numMinors(...)

在这里您可以直接在ExerciciTest类中致电numMinors(...)。由于没有静态方法,因此出现错误numMinorsExerciciTest