Estoy escribiendo una aplicación similar a TotalCommander. Tengo un componente separado para la lista de archivos y un modelo para él. oyentes de apoyo modelo y emite una notificación de eventos como CurrentDirChanged
etc. en forma siguiente:Prueba de unidades de un componente Swing
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); } }); } }
He escrito una prueba simple para esto:
@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); }
esto no funciona, porque no hay EventDispatchThread
. ¿Hay alguna forma de probar esta unidad dentro de la construcción sin cabeza?
-prueba de la unidad java swing de JMock
Escribí este código y quiero probar que dispara eventos cuando debería y con los parámetros correctos.Supongo que lo que estoy haciendo mal aquí es asegurar el hilo de GUI dentro de un modelo. El modelo no es un componente Swing, no tiene que activar eventos dentro de un hilo GUI. ¿Estoy pensando correctamente aquí? –