मैं कुल कमांडर-जैसे एप्लिकेशन लिख रहा हूं। मेरे पास फ़ाइल सूची के लिए एक अलग घटक है, और इसके लिए एक मॉडल है। मॉडल समर्थन श्रोताओं और मुद्दों निम्नलिखित तरीके से 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
। क्या हेडलेस बिल्ड के अंदर यूनिट परीक्षण करने का कोई तरीका है?
इकाई परीक्षण जावा स्विंग jmock
मैंने यह सह लिखा और मैं परीक्षण करना चाहता हूं कि यह सही पैरामीटर के साथ और जब घटनाओं को आग लगती है।मुझे लगता है, मैं यहां क्या गलत कर रहा हूं, एक मॉडल के अंदर जीयूआई थ्रेड सुनिश्चित करना है। मॉडल एक स्विंग घटक नहीं है, इसे जीयूआई थ्रेड के अंदर घटनाओं को आग लगाना नहीं है। क्या मैं यहाँ सही ढंग से सोच रहा हूँ? –