I need to create some gui tests using Jemmy but I have no idea how to launch it with javaws application. In tutorials/examples/etc is something like that:
new ClassReference("org.netbeans.jemmy.explorer.GUIBrowser")
.startApplication();
This code opens an example window, but how can I, using ClassReference object open *.jnlp
file? Or is it another way to "connect" jemmy with java web start application?
Thanks for advance.
您可以通过准备包含Jemmy的特殊构建来实现这一点,并从jnlp模式本身的app运行中调用Jemmy。
The solution is:
.jar
files from this build to your testing project. .jnlp
file in text editor and search for main application class application-desc main-class="[Main application class]"/>
new ClassReference("[Main application class]").startApplication();
Now you can access elements of this Java app from test environment
For the GUI testing we are using Jemmy, a library that comes with the NetBeans IDE and is very useful for testing Swing applications.
JUnit tests that utilize Jemmy so for example:
@Test
public void JunitTest() {
JFrameOperator mainFrame = new JFrameOperator();
JTextFieldOperator textField = new JTextFieldOperator(mainFrame, "textIn");
int x = 10;
assertEquals(x, textField.getLocationOnScreen().x);
}
Adding the @Test
annotation and making use of JUnit's assertEquals()
and fail()
if needed.
You can also do it using jnlp. Already suggested @ Sergey Grinev
Snapshot:
You can probably do the same trick with other AWT/Swing testing tool, but uispec4j allows to intercept webstart app executed from jnlp, you don't need to run the app by calling main() and you don't need to have your webstart app source code in your testing code repo.
Credit goes to tporeba
For learning more about Jemmy, you can go through this link
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.