WEB开发网
开发学院软件开发Java 使用FEST-Swing测试GUI 阅读

使用FEST-Swing测试GUI

 2009-09-11 00:00:00 来源:WEB开发网   
核心提示: 这里我们就不详细说明代码含义了,大体的功能是点击按钮,使用FEST-Swing测试GUI(2),可以将JTextField输入的文字显示在JLabel上面,需要注意的是,很漂亮,呵呵~~其实这里也只是按照起官方网站上面的Getting Started说明了FEST-Swing的简单用法,FEST

这里我们就不详细说明代码含义了,大体的功能是点击按钮,可以将JTextField输入的文字显示在JLabel上面。需要注意的是,FEST-Swing是使用组件的name值来获取组件的,因此这个setName方法的调用是必不可少的。

下面新建一个JUnit4 Test Case。首先需要有一个FrameFixture对象的属性。这里可以把FrameFixture理解成被测试的对象,因为我们想测试一个 JFrame,所以使用FrameFixture。在FEST-Swing中,这些类与Swing的组件名字大体是一致的,只是后面多了一个 Fixture。比如,JButton对应的类就是JButtonFixture。然后在@Before方法中对其进行实例化:

private FrameFixture frame;
    
  @Before
  public void setUp() {
    frame = new FrameFixture(new MyFrame());
    frame.show(); // 将frame显示出来
  }



在@After方法中对其进行清理:

@After
  public void tearDown() {
    frame.cleanUp();
  }

然后编写@Test方法:

@Test
  public void testCopyTextToLabel() {
    frame.textBox("input").enterText("Hello World!");
    frame.button("copy").click();
    frame.label("show").requireText("Hello World!");
  }

尽管没有注释,我想这个代码已经很清楚了:首先获得frame上面的input,在其中输入Hello World!,然后点击copy按钮,这时show的文字要求是Hello World!这就是一段自说明的代码,很明白。这里就是像前面所说的,使用组件设定的name值来获取组件。

这样就编写完成一个测试用例了,整个的代码如下:

import org.fest.swing.fixture.FrameFixture;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class MyFrameTest {

  private FrameFixture frame;
    
  @Before
  public void setUp() {
    frame = new FrameFixture(new MyFrame());
    frame.show();
  }

  @After
  public void tearDown() {
    frame.cleanUp();
  }

  @Test
  public void testCopyTextToLabel() {
    frame.textBox("input").enterText("Hello World!");
    frame.button("copy").click();
    frame.label("show").requireText("Hello World!");
  }
}

下面运行这个测试用例,就可以看到执行情况……貌似还有动画效果,很漂亮。呵呵~~

其实这里也只是按照起官方网站上面的Getting Started说明了FEST-Swing的简单用法,更多具体的使用方法请参考网站上面的使用手册。

出处: http://devbean.blog.51cto.com/448512/126828

上一页  1 2 

Tags:使用 FEST Swing

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接