Скомпилируйте и запустите тестирование с помощью junit-4.12.jar и hamcrest-core-1.3.jar в командной строке?Ошибка: абстрактна, не может быть создана, не может найти символ - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь выполнить модульное тестирование Java, и это то, что я сделал до сих пор:

в файле Test.java:

import java.util.*;

public class Test{
    public String getString(int n){
        return String.valueOf(n);
    }

    public int max(int a, int b){
        if(a>b) return a;
        return b;
    }

    public int maxOf(int []a){
        int max = Integer.MIN_VALUE;
        for (int i=0; i<a.length; i++){
            if (a[i]>max) max=a[i];
        }

        return max;
    }

    public String BMI(int weight, int height){
        double BMI = weight/(height*height);
        if(BMI < 18.5) return "Insufficient";
        else if (BMI>=18.5 && BMI<=22.99) return "Normal";
        else if (BMI>=23 && BMI<=24.99) return "Overweight";
        return "Fat";
    }
}

А затем я написал другой файл с именем Testtest.java в том же каталоге:

import static org.junit.Assert.*;
import org.junit.Test;

public class Testtest{
    @Test
    void testString(){
        Test case1 = new Test();
        String result = case1.getString(1);
        // System.out.println(result);
        assertEquals("1", result);
    }
    @Test
    public void testMax(){
        Test newTest = new Test();
        int max = newTest.max(2, 4);
        assertEquals(4, max);
    }

    @Test 
    public void testMaxOf(){
        Test newTest = new Test();
        int[] anArray = { 
            10,4,55,66,8,2,33,102
        };
        int max = newTest.maxOf(anArray);
        assertEquals(102, max);
    }

    @Test
    public void testBMI(){
        Test newTest = new Test();
        String result = newTest.BMI(60, 1.65);
        assertEquals("Normal", result);
    }
}

В этом каталоге теперь есть следующие файлы:

junit-4.12.jar
hamcrest-core-1.3.jar
Test.java
Testtest.java

Затем я захожу в каталог в командной строке: Сначала я скомпилировал тест.java с javac как обычно, затем я скомпилировал Testtest.java с этим:

javac -cp junit-4.12.jar ;.Testtest.java

и он показывает мне эту ошибку, как указано в названии

Я пробовал это много раз, я знаю, что было бы легче, если бы яиспользовать IDE, но по ряду причин я действительно хочу сделать это, используя только текстовый редактор и командную строку.

1 Ответ

0 голосов
/ 03 октября 2018

Класс, который вы тестируете, Тест, я бы назвал что-то еще.Этот класс, безусловно, не является абстрактным, поэтому я предполагаю, что Java пытается сделать что-то еще с помощью вызова Test, а не создать объект класса, который вы создали.Имейте в виду, что имена классов также обычно начинаются со строчной буквы и должны отражать имя файла .java.

Кроме этого, оно должно работать.Хотя, чтобы отметить, что в testBMI () вы передаете int и double методу, который принимает только два целых числа.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...