我正在编写一个类似于TotalCommander的应用程序。我有一个文件列表的单独组件和一个它的模型。该模型支持侦听器,并以以下方式发布事件通知,例如
单位测试Java Swing JMock
CurrentDirChanged
等:
private void fireCurrentDirectoryChanged(final IFile dir) { if (SwingUtilities.isEventDispatchThread()) for (FileTableEventsListener listener : tableListeners) listener.currentDirectoryChanged(dir); else { SwingUtilities.invokeLater(new Runnable() { public void run() { for (FileTableEventsListener listener : tableListeners) listener.currentDirectoryChanged(dir); } }); } }我已经为此编写了一个简单的测试:
@Test public void testEvents() throws IOException { IFile testDir = mockDirectoryStructure(); final FileSystemEventsListener listener = context.mock(FileSystemEventsListener.class); context.checking(new Expectations() {{ oneOf(listener).currentDirectoryChanged(with(any(IFile.class))); }});这并不起作用,因为没有
FileTableModel model = new FileTableModel(testDir); model.switchToInnerDirectory(1); }
EventDispatchThread
。是否有任何方法在无头构建中对其进行单元测试?单位测试Java Swing JMock