为什么这段代码从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. fest - swing testng - 1.2
  2. fest - swing - 1.2

错误是:

MyFrame can not be resolved to a type.

首先你应该使用AssertJ Swing;FEST过时了,不再维护了。但是由于AssertJ Swing共享类似的语法,因此转换将很容易。

MyFrame不是FEST/AssertJ-Swing的一部分。它意味着你要为之编写应用程序的框架。所以使用JFrame或者其他框架的实现。

看一下AssertJ的例子(很抱歉发布了关于AssertJ的文章,但如果你想坚持使用FEST,应该可以根据你的目的调整代码)。它包含编译版本中的示例—因此您可以查看并试用一下,看看AssertJ Swing/FEST是否是适合您的工具。

相关内容

  • 没有找到相关文章

最新更新