单元测试事件监听器

end*_*ins 6 java unit-testing event-listener

我需要对事件监听器的功能进行单元测试,但我以前从未这样做过,而且我似乎无法在任何地方找到它的例子.有没有人有任何关于这个的好方法的建议?

dim*_*414 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
}
Run Code Online (Sandbox Code Playgroud)

当您按照标准模式创建事件侦听器时,可能会出现问题,您可以在其中定义直接与包含类交互的匿名类.然而,将这样的类重构为它自己的完整类并将其传递给构造函数,而不是隐式地从周围的类传递,应该不难.