一、需要类库
abbot库:abbot-1.0.0.rc5.zip
TestNG库:testng-5.5.zip
TestNG-Abbot库:testng-abbot-0[1].3.2-030807.zip
TestNG-Eclipse的插件:testng-eclipse-5.5.0.0.zip
二、测试类代码
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class WordFinder extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JLabel labWord = new JLabel("Word");
private JTextField textWord = new JTextField(10);
private JLabel lblResult = new JLabel();
JButton button = new JButton("Find Word");
public WordFinder() throws HeadlessException {
super("Word Finder");
setLayout(new GridLayout(3,1,10,10));
//
JPanel p = new JPanel();
p.setLayout(new FlowLayout(FlowLayout.LEFT,10,10));
p.add(labWord);
textWord.setName("textWord");
p.add(textWord);
add(p);
//
lblResult.setName("lblResult");
add(lblResult);
//
button.setName("button");
button.addActionListener(this);
add(button);
//
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
System.exit(0);
}
});
}
private JLabel labWord = new JLabel("Word");
private JTextField textWord = new JTextField(10);
private JLabel lblResult = new JLabel();
JButton button = new JButton("Find Word");
public WordFinder() throws HeadlessException {
super("Word Finder");
setLayout(new GridLayout(3,1,10,10));
//
JPanel p = new JPanel();
p.setLayout(new FlowLayout(FlowLayout.LEFT,10,10));
p.add(labWord);
textWord.setName("textWord");
p.add(textWord);
add(p);
//
lblResult.setName("lblResult");
add(lblResult);
//
button.setName("button");
button.addActionListener(this);
add(button);
//
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
System.exit(0);
}
});
}
public static void main(String[] args) {
WordFinder frame = new WordFinder();
frame.pack();
frame.setVisible(true);
}
WordFinder frame = new WordFinder();
frame.pack();
frame.setVisible(true);
}
public void actionPerformed(ActionEvent arg0) {
lblResult.setText("Enter " + textWord.getText());
textWord.requestFocus();
}
lblResult.setText("Enter " + textWord.getText());
textWord.requestFocus();
}
}
三、测试代码
import java.awt.Dimension;
import org.testng.abbot.AbbotFixture;
import org.testng.abbot.fixture.JButtonFixture;
import org.testng.abbot.fixture.JLabelFixture;
import org.testng.abbot.fixture.JTextComponentFixture;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.testng.abbot.fixture.JButtonFixture;
import org.testng.abbot.fixture.JLabelFixture;
import org.testng.abbot.fixture.JTextComponentFixture;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class WordFinderGUITest {
public AbbotFixture fixture;
@BeforeMethod
public void initializeGUI() {
fixture = new AbbotFixture();
fixture.showWindow(new WordFinder(),new Dimension(200,200));
}
@AfterMethod
public void tearDownGUI() {
fixture.cleanUp();
}
@Test
public void assertDefinitionPresent() {
String text = "MCY";
JTextComponentFixture text1 = new JTextComponentFixture(this.fixture,"textWord");
text1.enterText(text);
JButtonFixture bfix = new JButtonFixture(this.fixture, "button");
bfix.click();
JLabelFixture lfix = new JLabelFixture(this.fixture, "lblResult");
lfix.shouldHaveThisText("Enter " + text);
}
}
相当漂亮的功能