您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 >
JFCUnit介绍
作者:网络转载 发布时间:[ 2012/12/27 14:16:42 ] 推荐标签:

测试用例代码:

import java.util.*;

import javax.swing.*;

import junit.extensions.jfcunit.*;
import junit.extensions.jfcunit.eventdata.*;
import junit.framework.*;
import org.apache.regexp.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author leiwei
 * @version 1.0
 */

public class LoginScreenTest
    extends JFCTestCase {

  private LoginScreen loginScreen = null;
  private TestHelper helper = null;

  public LoginScreenTest(String name) {
    super(name);
  }

  protected void setUp() throws Exception {
    super.setUp();
    helper = new JFCTestHelper();
    loginScreen = new LoginScreen("LoginScreenTest: " + getName());
    loginScreen.setVisible(true);
  }

  protected void tearDown() throws Exception {
    loginScreen = null;
    helper.cleanUp(this);
    super.tearDown();
  }


  public void testUI() {
    JDialog dialog;

    JButton exitButton = (JButton) helper.findNamedComponent("ExitButton",
        loginScreen, 0);
    assertNotNull("Could not find the Exit button", exitButton);

    JButton enterButton = (JButton) helper.findNamedComponent("EnterButton",
        loginScreen, 0);
    assertNotNull("Could not find the Enter button", enterButton);

    JTextField userNameField = (JTextField) helper.findNamedComponent(
        "LoginNameTextField", loginScreen, 0);
    assertNotNull("Could not find the userNameField", userNameField);

    assertEquals("Username field is empty", "", userNameField.getText());

    JTextField passwordField = (JTextField) helper.findNamedComponent(
        "PasswordTextField", loginScreen, 0);
    assertNotNull("Could not find the passwordField", passwordField);

    assertEquals("Password field is empty", "", passwordField.getText());

    try {
      helper.enterClickAndLeave(new MouseEventData(this, enterButton));
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }

    List showingDialogs = helper.getShowingDialogs(loginScreen);
    assertEquals("Number of dialogs showing is wrong", 2, showingDialogs.size());

    dialog = (JDialog) showingDialogs.get(1);
    assertEquals("Wrong dialog showing up", "Login Error", dialog.getTitle());

    helper.disposeWindow(dialog, this);
  }

 

 

  public static Test suite() {
    return new TestSuite(LoginScreenTest.class);
  }


  public void TestUI(){}

  public static void main(String args[]) {
    junit.textui.TestRunner.run(suite());

  }

}

小结
1、    JFCUnit的基本框架与原理与Junit一样,其实从实现上是完全基于Junit,是Junit在GUI界面测试上的有效扩展。
2、    JFCUnit功能十分强大,擅长对象实例检查,各种人机界面响应事件的模拟,便于功能性检查。
3、    JFCUnit不善于界面布局,美观方面的检查,看来人工测试还是不可缺少的。
4、    JFCUnit中对对象进行测试的基础是获得测试对象实例,关键是find…Component系列API的应用,具体查找主要基于两个方面,对象组件的“Name”属性和在容器中的Index,而这两种方式都不是很直观,具体使用何种方式也很大程度上取决于开发人员的编码,具体使用时有一定难度和局限性。
5、    JFCUnit还有很多深入用法,比如支持GUI测试的多线程方法,支持XML方式测试,以后有时间再与大家分享。
6、    由于相关资料比较缺乏,很多测试经验完全是个人摸索得来,希望以后有人做更深入的研究。

上一页12下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd