Как мне написать свой собственный ListSelectionEvent? - PullRequest
0 голосов
/ 21 апреля 2020

Я сделал GUI, который содержит список. Когда выбор сделан в этом списке, пользователь нажимает на выбор списка, и некоторые действия выполняются. Я хочу иметь возможность протестировать это действие без необходимости делать выбор через GUI. Например, у меня есть GUI. java и отдельный GUITest. java. Я хотел бы сделать что-то вроде GUITest.java

valueChanged () является методом из интерфейса ListSelectionListener java и принимает только параметры типа ListSelectionEvent. Итак, в конечном итоге, как бы я создал свою собственную переменную ListSelectionEvent, которая содержит действие, которое было выбрано "a"?

1 Ответ

0 голосов
/ 21 апреля 2020

Я только что подумал об этом, который, я думаю, гораздо проще выполняет ту же задачу. Метод valueChanged (ListSelectionEvent e) автоматически запускается, когда делается выбор в списке. Имея это в виду, я смогу проверить действие выбранного "a", используя метод setSelectedIndex (index). valueChanged (...) обнаружит изменение, сделанное из вызова: list.setSelectedIndex (...)

public class GUI implements ListSelectionListener{
    String[] letters = {"a", "b", "c"};
    JList list = new JList(letters);
    list.addListSelectionListener(this);

    public void valueChanged(ListSelectionEvent e){
        if(list.getSelectedValue().equals("a")){
            System.out.println("Success");
        }else{
            System.out.println("Fail");
        }
    }
}

затем из моего тестового класса

public class GUITest{
    @test
    void testListSelection(){
        GUI t = new GUI();
        t.list.setSelectedIndex(0);
        assert(whatever test your doing);
    }
}

Оператор if для «a» как выбранное значение было охвачено во время теста JUnit.

...