swing - FEST:断言 JButton 显示某个图标

标签 swing jbutton fest

在我的 FEST 测试中,我尝试断言 JButton 具有特定的 ImageIcon。我在org.fest.swing.fixture.JButtonFixture上没有找到对应的方法

最佳答案

您可以编写一个自己的 ButtonFixture Wrapper,它提供了一种方法。

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() );
            }

        }
    }
}

关于swing - FEST:断言 JButton 显示某个图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6177930/

相关文章:

Java swing 动画 Swing 组件而不损失性能

java - 带有按钮的单元格在java中不被视为选定的单元格

java - 如何使一个类中的按钮影响另一个类中的文本区域?

java - 使用 swing 的动画和使用 javafx 的动画之间的区别

Java 组合框错误

java - 在java中将按钮组件添加到java选项卡式 Pane

java - FEST 测试取决于创建新机器人

java - 使用 WindowFinder 查找模态对话框

java - fest 和带有自定义 map 的断言-j 之间的细微差别

Java Swing - DefaultListModel - 当我只想打印一个字段时打印所有对象信息