Hi Aleem,
WindowTester by design is intended to be a bit higher level than the 'Bot approach (such as the AWT Robot, Abbot and SWTBot). The distinction is a essentially like that between JFace and SWT. WindowTester is to JFace as Bots are to SWT. Where this is particularly noticeable is in WindowTester's implementation of a "managed runtime" which allows us to do some interesting things with condition monitoring. See the Shell Monitor docs for an example of this approach in action:
http://downloads.instantiations.com/WindowTesterDoc/integration/latest/docs/html/reference/javadoc/com/windowtester/runtime/swt/condition/shell/IShellMonitor.htmlWe've found that this mechanism is really handy in writing robust tests.
Similarly, using conditions and handlers in our new
ensureThat(..) clauses makes for robust and communicative test setup:
http://downloads.instantiations.com/WindowTesterDoc/integration/latest/docs/html/reference/javadoc/com/windowtester/runtime/IUIContext.html#ensureThat(com.windowtester.runtime.condition.IConditionHandler)To get a sense for how this all fits into our test writing philosophy you might skim the runtime core docs:
http://downloads.instantiations.com/WindowTesterDoc/integration/latest/docs/html/programmer/core/index.htmlThe runtime is also meant to be user-extensible. Pointers for how this can be done are here:
http://downloads.instantiations.com/WindowTesterDoc/continuous/latest/docs/html/programmer/core/Creating%20a%20Custom%20Locator.htmlMoreover, a growing body of examples is being collected in our Open Source Commons project here:
http://code.google.com/p/wt-commons/Beyond the runtime, WT ships with a fully featured recorder which can be used to generate tests that interact with and make assertions against an existing SWT/GEF/Swing application.
http://downloads.instantiations.com/WindowTesterDoc/continuous/latest/docs/html/ui/index.htmlLastly, you asked about JUnit4. We plan to support JUnit4 as soon as the Eclipse Test Framework fully supports it. Something we hope to see real soon!
https://bugs.eclipse.org/bugs/show_bug.cgi?id=153429I hope this starts to answer you questions. If not, feel free to follow up. Thanks!
-phil