我正在编写一个类似 TotalCommander 的应用程序。我有一个单独的文件列表组件和一个模型。CurrentDirChanged
模型支持侦听器并以下列方式为诸如此类的事件发出通知:
私人无效fireCurrentDirectoryChanged(最终IFile dir){ if (SwingUtilities.isEventDispatchThread()) 对于(FileTableEventsListener 监听器:tableListeners) listener.currentDirectoryChanged(dir); 别的 { SwingUtilities.invokeLater(new Runnable() { 公共无效运行(){ 对于(FileTableEventsListener 监听器:tableListeners) listener.currentDirectoryChanged(dir); } }); } }
我为此写了一个简单的测试:
@测试 公共 void testEvents() 抛出 IOException { IFile testDir = mockDirectoryStructure(); 最终 FileSystemEventsListener 监听器 = context.mock(FileSystemEventsListener.class); context.checking(新期望(){{ oneOf(listener).currentDirectoryChanged(with(any(IFile.class))); }}); FileTableModel 模型 = new FileTableModel(testDir); 模型.switchToInnerDirectory(1); }
这不起作用,因为没有EventDispatchThread
. 有没有办法在无头构建中对此进行单元测试?
单元测试 java swing jmock