2 Stimmen

FEST: Bestätigen, dass JButton ein bestimmtes Icon zeigt

In meinem FEST-Test versuche ich zu behaupten, dass ein JButton ein bestimmtes ImageIcon hat. Ich habe keine entsprechende Methode auf org.fest.swing.fixture.JButtonFixture gefunden

3voto

oliholz Punkte 7367

Sie können einen eigenen ButtonFixture Wrapper schreiben, der eine Methode dafür bereitstellt.

IconButtonFixture iconButtonFixture = new IconButtonFixture(buttonFixture.robot, buttonFixture.target);
iconButtonFixture.requireIcon(new ImageIcon( "file:/C:/Users/admin/workspace/Project/bin/image/icon.gif" ));

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

        }
    }
}

0voto

oliholz Punkte 7367

Wie wäre es mit der Verwendung von Target?

Assert.assertNotNull( jButtonFixture.target.getIcon() );

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X