TotalCommander のようなアプリケーションを作成しています。ファイルリスト用の別のコンポーネントと、そのモデルがあります。モデルはリスナーをサポートCurrentDirChanged
し、次のようなイベントの通知を発行します。
private void fireCurrentDirectoryChanged(最終 IFile dir) { if (SwingUtilities.isEventDispatchThread()) for (FileTableEventsListenerリスナー: tableListeners) listener.currentDirectoryChanged(dir); そうしないと { SwingUtilities.invokeLater(new Runnable() { public void run() { for (FileTableEventsListenerリスナー: tableListeners) listener.currentDirectoryChanged(dir); } }); } }
私はこれのための簡単なテストを書きました:
@テスト public void testEvents() は IOException をスローします { IFile testDir = mockDirectoryStructure(); 最終的な FileSystemEventsListener リスナー = context.mock(FileSystemEventsListener.class); context.checking(new Expectations() {{ oneOf(listener).currentDirectoryChanged(with(any(IFile.class))); }}); FileTableModel モデル = 新しい FileTableModel(testDir); model.switchToInnerDirectory(1); }
がないため、これは機能しませんEventDispatchThread
。ヘッドレスビルド内でこれを単体テストする方法はありますか?
単体テストJavaスイングjmock