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.html
We'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.html
The 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.html
Moreover, 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.html
Lastly, 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=153429
I hope this starts to answer you questions. If not, feel free to follow up. Thanks!