статические параметры, которые будут использоваться в качестве списка параметров на выбор - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть класс с двумя конечными статическими параметрами, которые должны использоваться в качестве параметров:

class Abc {
    public final static String ASC = "ASC";
    public final static String DESC = "DESC";

    method(String parameter, LinkedList<type>) {
        //I also tried if(!(parameter == ASC)) or
        //if(!(sortMode.equals(ASC)))
        if(parameter != ASC || parameter != DESC) {
            throw new IllegalArgumentException();
        }
        if(parameter == ASC) {
            do this
        } else if(parameter == DESC) {
            do that
        }
    }
}

Класс должен использоваться следующим образом - вот метод testMethod в JUnit3:

Abc sort2 = new Abc();
//... declaration and initializing list5

public void testCatchIllegalArgument() {
    boolean passed = false;
    try {
        sort2.method("abc", list5);
    } catch (IllegalArgumentException e) {
        passed = true;
    }
        assertEquals("... "
            + " failed.", true, passed);        
}

Это фактически не перехватывает IllegalArgumentException - переданная логическая переменная остается ложной после выполнения теста.

Что я в основном намереваюсь сделать, это иметь два фиксированных параметра в этом классе, которые можно выбрать в методев качестве параметров, но я не хочу сохранять их оба в каждом объекте этого класса.

Заранее благодарю за помощь.

1 Ответ

0 голосов
/ 10 сентября 2018
class Abc {
    public final static String ASC = "ASC";
    public final static String DESC = "DESC";

    public method(String parameter, LinkedList<type>) {
        if(!ASC.equalsIgnoreCase(parameter) && !DESC.equalsIgnoreCase(parameter)) {
            throw new IllegalArgumentException();
        }
        if(ASC.equalsIgnoreCase(parameter)) {
            do this
        } else if(DESC.equalsIgnoreCase(parameter)) {
            do that
        }
    }
}

public void testCatchIllegalArgument() {
    boolean passed = false;
    try {
        sort2.method(Abc.ASC, list5);
    } catch (IllegalArgumentException e) {
        passed = true;
    }
        assertEquals("... "
            + " failed.", true, passed);        
}
...