Java GUI Testing - JFCUnit Introduce

系统 1594 0

Java GUI Testing - JFCUnit Introduce

Background:

JFCUnit is an extension to the popular testing framework JUnit . This document assumes you are familiar with the usage of JUnit. If not, visit the main JUnit website where there are a number of links to some excellent resources on the subject.

* Environment setup & JFCUnit installing…

Download below jars: JUnit.jar 3.7 or greater, JFCUnit.jar, jakarta-regexp-1.5.jar

Install JRE1.4 or greater & Eclipse IDE

* A Sample Java GUI & JFCUnit Test

1. Deploy downloaded jars into your project class path, see following image

2. create java GUI sample codes

package com.fish.ui;

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import javax.swing.JButton;

import javax.swing.JDialog;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class NewTestViewImpl extends JDialog implements TestView {

/**

*

*/

private static final long serialVersionUID = 1L;

private JTextField nameField ;

private JButton submitButton ;

private JButton cancelButton ;

private JLabel nameLabel ;

private boolean proceed = false ;

public NewTestViewImpl(Object object) {

// super(object);

initComponents();

layoutComponent();

}

private void initComponents() {

this . nameField = new JTextField(15);

this . submitButton = new JButton( "OK" );

this . cancelButton = new JButton( "Cancel" );

this . nameLabel = new JLabel( "Test Name:" );

}

private void layoutComponent() {

JPanel topPane = new JPanel();

topPane.add( nameLabel );

topPane.add( nameField );

JPanel buttonPane = new JPanel();

buttonPane.setLayout( new FlowLayout());

buttonPane.add( submitButton );

buttonPane.add( cancelButton );

getContentPane().add(topPane, BorderLayout. NORTH );

getContentPane().add(buttonPane, BorderLayout. LINE_END );

pack();

}

public String getTestName() {

return nameField .getText();

}

public void setTestName(String testName) {

this . nameField .setText(testName);

}

public void display() {

this .setVisible( true );

}

public boolean proceed() {

return proceed ;

}

public boolean cancelled() {

return ! proceed ;

}

public static void main(String[] args) {

new NewTestViewImpl( null ).setVisible( true );

}

public void setupJFCNames() {

nameField .setName( "testNameField" );

submitButton .setName( "SubmitButton" );

cancelButton .setName( "CancelButton" );

}

public void addListener(Listener listener) {

submitButton .addActionListener(listener);

cancelButton .addActionListener(listener);

}

public void closeView() {

}

public void openView() {

}

}

3. JFCUnit test codes

package com.fish.ui.test;

import javax.swing.JButton;

import javax.swing.JComponent;

import javax.swing.JTextField;

import com.fish.ui.NewTestViewImpl;

import junit.extensions.jfcunit.JFCTestCase;

import junit.extensions.jfcunit.JFCTestHelper;

import junit.extensions.jfcunit.TestHelper;

import junit.extensions.jfcunit.finder.NamedComponentFinder;

import junit.framework.Test;

import junit.framework.TestSuite;

public class NewTestViewImplTest extends JFCTestCase {

private NewTestViewImpl newTestViewImpl = null ;

private TestHelper helper = null ;

public NewTestViewImplTest(String name) {

super (name);

}

protected void setUp() throws Exception {

super .setUp();

helper = new JFCTestHelper();

newTestViewImpl = new NewTestViewImpl( null );

newTestViewImpl .setupJFCNames();

newTestViewImpl .setVisible( true );

System. out .println( "setup test case" );

}

protected void tearDown() throws Exception {

newTestViewImpl = null ;

TestHelper. cleanUp ( this );

super .tearDown();

System. out .println( "setup test case" );

}

public void testUI() {

System. out .println( "start testing ok button......" );

NamedComponentFinder finder = new NamedComponentFinder(

JComponent. class , "SubmitButton" );

JButton submitButton = (JButton) finder.find( newTemplateViewImpl , 0);

assertNotNull ( "Could not find the submit button" , submitButton);

finder = new NamedComponentFinder(

JComponent. class , "CancelButton" );

JButton CancelButton = (JButton) finder.find( newTemplateViewImpl , 0);

assertNotNull ( "Could not find the cancel button" , CancelButton);

finder = new NamedComponentFinder(

JComponent. class , "testNameField" );

JTextField testNameField = (JTextField) finder.find( newTestViewImpl , 0);

assertNotNull ( "Could not find the cancel button" , templateNameField);

newTestViewImpl .setTestName( "mTestName" );

assertEquals (testNameField.getText(), "mTestName " );

// System.out.println(text);

testNameField.setText( "" );

assertEquals ( "Test field is not null" , "" , newTestViewImpl .getTestName());

}

public static Test suite() {

return new TestSuite(NewTestViewImplTest. class );

}

public static void main(String args[]) {

junit.textui.TestRunner. run ( suite ());

}

}

4. Run JFCUnit test case using eclipse plug-in Junit Runner to load testcase and run.

More Information:

http://jfcunit.sourceforge.net/

Java GUI Testing - JFCUnit Introduce


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论