为什么Fest的这段代码显示错误?

时间:2013-06-08 11:47:52

标签: java swing testing applet fest

我正在努力学习Java Fest。我从http://docs.codehaus.org/display/FEST/Getting+Started

获取了一段代码
import org.testng.annotations.*;
import org.fest.swing.fixture.FrameFixture;

public class FirstGUITest {

  private FrameFixture window;

  @BeforeClass public void setUpOnce() {
    FailOnThreadViolationRepaintManager.install();
  }

  @BeforeMethod public void setUp() {
    MyFrame frame = GuiActionRunner.execute(new GuiQuery<MyFrame>() {
        protected MyFrame executeInEDT() {
          return new MyFrame(); 
        }
    });
    window = new FrameFixture(frame);
    window.show(); // shows the frame to test
  }

  @AfterMethod public void tearDown() {
    window.cleanUp();
  }

  @Test public void shouldCopyTextInLabelWhenClickingButton() {
    window.textBox("textToCopy").enterText("Some random text");
    window.button("copyButton").click();
    window.label("copiedText").requireText("Some random text");
  }
}

在eclipse中,此代码显示一些错误。我必须导入

import org.fest.swing.edt.FailOnThreadViolationRepaintManager;

尽管它在这部分显示错误:

  @BeforeMethod public void setUp() {
    MyFrame frame = GuiActionRunner.execute(new GuiQuery<MyFrame>() {
        protected MyFrame executeInEDT() {
          return new MyFrame(); 
        }
    });

它在Myframe上显示错误。任何人都可以解释一下这是什么原因?提前谢谢。

编辑:我将以下罐子与我的项目联系起来:

  1. 巨星-摆动TestNG的-1.2
  2. 巨星摆幅-1.2
  3. 错误是:

    MyFrame can not be resolved to a type.
    

1 个答案:

答案 0 :(得分:0)

首先你应该使用AssertJ Swing; FEST已过时,不再维护。但由于AssertJ Swing拥有类似的语法,因此过渡很容易。

MyFrame不属于FEST / AssertJ-Swing。它意味着您正在为您的应用程序编写框架。因此,请使用JFrame或您拥有的框架的任何实现。

看一下AssertJ Examples(对不起发布有关AssertJ的内容,但是如果你想坚持使用FEST,应该可以根据你的需要调整代码)。它包含了编译版本中的示例 - 因此您可以查看它并稍微玩一下,看看AssertJ Swing / FEST是否适合您。