我制作了一个包含列表的GUI。在该列表中进行选择时,通过用户单击列表选择,将执行某些操作。我希望能够测试该动作,而不必通过GUI进行实际选择。
例如,我有我的GUI.java和单独的GUITest.java。我想做类似的事情
valueChanged()是Java接口ListSelectionListener中的方法,并且仅接受ListSelectionEvent类型的参数。因此,最终,我将如何创建自己的ListSelectionEvent变量来保存选择“ a”的操作?
最佳答案
我只是想到这一点,而执行同一任务比我想的要容易得多。在列表中进行选择时,方法valueChanged(ListSelectionEvent e)自动运行。考虑到这一点,我将能够使用setSelectedIndex(index)方法测试被选择的“ a”的动作。 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);
}
}
在JUnit测试期间涵盖了“ a”作为选定值的if语句。
关于java - 如何编写自己的ListSelectionEvent?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61334657/