, как я могу проверить функцию, которая принимает «ActionEvent» параметр типа в Java/Swing? Ниже приводится функция, что я хочу, чтобы тест:Unit Тестирование функции, которая принимает ActionEvent в качестве параметра
public void actionPerformed(ActionEvent e)
{
// Communicating with the Model class //
/** if the "Add" button has been pressed **/
if (e.getActionCommand() == "Add")
{
String cust_name = view.getAddCustNameField().getText();
int ph_num = Integer.parseInt(view.getAddPhoneNumField().getText());
model.addEntry(cust_name, ph_num, "controller");
}
/** if the "Delete" button has been pressed **/
else if (e.getActionCommand() == "Delete")
{
String cust_name = view.getDelCustNameField().getText();
model.deleteEntry(cust_name, "controller");
}
/** if the "Update" button has been pressed **/
else if (e.getActionCommand() == "Update")
{
String cust_name = view.getUpdCustNameField().getText();
int ph_num = Integer.parseInt(view.getUpdPhoneNumField().getText());
model.updateEntry(cust_name, ph_num, "controller");
}
// Communicating with the View class //
else
{
/** if the "Change Family" button has been pressed **/
Font fontRes = view.getResDisplayField().getFont();
Font fontDir = view.getDirDisplayField().getFont();
if (e.getActionCommand() == "Change Family")
{
String fontFamily = view.getFontFamilyField().getText();
if (fontFamily != "")
{
view.getResDisplayField().setFont(new Font(fontFamily, fontDir.getStyle(), fontRes.getSize()));
}
}
/** if the "Change Size" button has been pressed **/
else if (e.getActionCommand() == "Change Size")
{
int fontWeight = Integer.parseInt(view.getFontSizeField().getText());
if (fontWeight > 0)
{
view.getResDisplayField().setFont(new Font(fontRes.getFamily(), fontRes.getStyle(), fontWeight));
view.getDirDisplayField().setFont(new Font(fontDir.getFamily(), fontDir.getStyle(), fontWeight));
}
}
/** if the "Change Italics" button has been pressed **/
else if (e.getActionCommand() == "Change Style")
{
String fontStyle = (String)(view.getFontStyleCombo().getSelectedItem());
if (fontStyle == "Plain")
{
view.getResDisplayField().setFont(new Font(fontRes.getFamily(), Font.PLAIN, fontRes.getSize()));
view.getDirDisplayField().setFont(new Font(fontDir.getFamily(), Font.PLAIN, fontDir.getSize()));
}
else if (fontStyle == "Italic")
{
view.getResDisplayField().setFont(new Font(fontRes.getFamily(), Font.ITALIC, fontRes.getSize()));
view.getDirDisplayField().setFont(new Font(fontDir.getFamily(), Font.ITALIC, fontDir.getSize()));
}
else if (fontStyle == "Bold")
{
view.getResDisplayField().setFont(new Font(fontRes.getFamily(), Font.BOLD, fontRes.getSize()));
view.getDirDisplayField().setFont(new Font(fontDir.getFamily(), Font.BOLD, fontDir.getSize()));
}
}
}// 'else' (if the command is meant for the view class)
Таким образом, в основном я хочу, чтобы эмулировать нажатие кнопки действия и в зависимости от конкретной кнопки нажата одна из ветвей условного оператора выполняется. В соответствии с каждой кнопкой имеется набор из двух JTextFields, значение которых я должен каким-то образом установить в своей модульной тестовой функции. Это «... CustNameField» и «... PhoneNumField», значение которых я вводил в вышеуказанную функцию, поэтому я должен заранее установить их значения, чтобы я мог напрямую их вводить. Как я могу это сделать?
Это не ясно, что вы хотите сделать точно. «Я хочу подражать кнопкам нажатия кнопок *» и «* Я должен заранее установить их значения, чтобы я мог напрямую их вводить. Как я могу это сделать?» это две разные вещи. Можете ли вы реструктурировать свой вопрос с точки зрения того, что у вас есть и что вы хотите сделать? – user1803551