簡體   English   中英

JUnit測試無法識別我的功能(通用功能)

[英]JUnit test doesn't recognise my function (Generic functions)

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

}

單元測試班:

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個類,一個是實現Comparator的BottleComparator,一個是實現Comparable的Bottle,另一個是exercici,這是包含我被要求做的方法的類。

問題是測試類似乎無法識別我的函數numMinors,我已經嘗試將所有文​​檔放在另一個包中並關閉該項目並再次打開它。 有任何線索嗎?

(我仍然需要將assert函數放在測試中)

錯誤信息:

找不到標志

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

位置:exerciciTest類

numMinors不是您的ExerciciTest類的靜態方法。 這是您的Exercici類的靜態方法。

因此,您可以執行Exercici.numMinors(...)但不能執行ExerciciTest.numMinors(...)

在這里,您直接在ExerciciTest類中調用numMinors(...) 由於ExerciciTest類中沒有靜態方法numMinorsExerciciTest發生錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM