我正在努力学习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上显示错误。任何人都可以解释一下这是什么原因?提前谢谢。
编辑:我将以下罐子与我的项目联系起来:
错误是:
MyFrame can not be resolved to a type.
答案 0 :(得分:0)
首先你应该使用AssertJ Swing; FEST已过时,不再维护。但由于AssertJ Swing拥有类似的语法,因此过渡很容易。
MyFrame
不属于FEST / AssertJ-Swing。它意味着您正在为您的应用程序编写框架。因此,请使用JFrame或您拥有的框架的任何实现。
看一下AssertJ Examples(对不起发布有关AssertJ的内容,但是如果你想坚持使用FEST,应该可以根据你的需要调整代码)。它包含了编译版本中的示例 - 因此您可以查看它并稍微玩一下,看看AssertJ Swing / FEST是否适合您。