对 Swing 组件进行单元测试
2022-09-03 12:19:01
我正在编写一个类似 TotalCommander 的应用程序。我有一个单独的文件列表组件,以及它的模型。模型支持侦听器,并按以下方式为事件等发出通知: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