我需要对事件监听器的功能进行单元测试,但我以前从未这样做过,而且我似乎无法找到任何关于它的示例。有没有人对这个问题有什么好的建议呢?
答案 0 :(得分:9)
没有太多内容,构建事件监听器,传递模拟事件和测试。
@Test
public void testEventListener() {
ActionListener subjectUnderTest = new MyActionListener();
ActionEvent mockEvent = mock(ActionEvent.class);
// Or just create a new ActionEvent, e.g. new ActionEvent();
// setup mock
subjectUnderTest.actionPerformed(mockEvent);
// validate
}
当您按照标准模式创建事件侦听器时,可能会出现问题,您可以在其中定义直接与包含类交互的匿名类。但是,将这样的类重构为它自己的完整类并且很难将任何依赖项传递给构造函数,而不是从周围的类中隐式传递。