如何解决FEST:断言JButton正在显示某个Icon
| 在我的FEST测试中,我尝试断言JButton具有特定的ImageIcon。我在org.fest.swing.fixture.JButtonFixture上找不到对应的方法解决方法
您可以编写自己的ButtonFixture包装器,该包装器提供了一种方法。
IconButtonFixture iconButtonFixture = new IconButtonFixture(buttonFixture.robot,buttonFixture.target);
iconButtonFixture.requireIcon(new ImageIcon( \"file:/C:/Users/admin/workspace/Project/bin/image/icon.gif\" ));
IconButtonFixture类:
import static org.fest.swing.edt.GuiActionRunner.execute;
public class IconButtonFixture extends JButtonFixture {
private IconButtonDriver driver;
public IconButtonFixture(Robot robot,JButton target) {
super(robot,target);
driver = new IconButtonDriver(robot);
}
public JButtonFixture requireIcon(Icon icon) {
driver.requireIcon(target,icon);
return this;
}
private class IconButtonDriver extends AbstractButtonDriver {
public IconButtonDriver( Robot robot ) {
super( robot );
}
public void requireIcon(final JButton button,Icon icon) {
Icon buttonIcon = execute(new GuiQuery<Icon>() {
protected Icon executeInEDT() {
return button.getIcon();
}
});
if(!icon.toString().equals( buttonIcon.toString() )) {
Assert.failNotEquals( \"The Button has not the expected Icon.\",icon,button.getIcon() );
}
}
}
}
, 那使用目标呢?
Assert.assertNotNull( jButtonFixture.target.getIcon() );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。