Цитата:
Помогите написать JUnit-тесты для данной программы в соответствии с логикой программы.
Умышленно внести ошибку в один из методов программы. Запустить JUnit-тесты на выполнение. Просмотреть результат запуска.
Исправить внесенную ошибку. Исправить ошибку, добившись того, чтобы JUnit-тесты выполнялись правильно.
|
Код:
package laba2;
import javax.swing.*;
import java.awt.event.*;
import javax.print.attribute.standard.Sides;
public class Suma {
public Suma(double x) {
this.x = x;
}
private double x;
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
private double e = 0.00002;
private double sum = new Double(0);
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public double getSum() {
return sum;
}
public void setSum(double sum) {
this.sum = sum;
}
private int number = new Integer(1);
public static void main(String[] args) {
final JLabel llb3 = new JLabel("");
final JLabel llb4 = new JLabel("");
final JTextField inpx = new JTextField("");
ImageIcon img = new ImageIcon("1.gif");
JFrame frame = new JFrame("Лабораторна робота №2");
JButton btn = new JButton("Розрахувати");
JLabel llb1 = new JLabel("Змінна Х:");
JLabel llb2 = new JLabel("Результат:");
JLabel label = new JLabel(img);
llb1.setBounds(5, 120, 60, 25);
inpx.setBounds(70, 120, 155, 25);
btn.setBounds(240, 120, 130, 25);
llb2.setBounds(5, 150, 65, 25);
llb3.setBounds(70, 137, 200, 50);
label.setBounds(5, 5, 220, 110);
llb4.setBounds(70, 160, 200, 50);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.getContentPane().add(llb1);
frame.getContentPane().add(btn);
frame.getContentPane().add(inpx);
frame.getContentPane().add(llb3);
frame.getContentPane().add(llb2);
frame.getContentPane().add(llb4);
frame.getContentPane().add(label);
frame.setSize(400, 250);
frame.setLocation(600, 200);
frame.setVisible(true);
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
llb3.setText("");
llb4.setText("");
Suma dataFormuls = new Suma(Double.parseDouble(inpx.getText()));
dataFormuls.formuls();
llb3.setText("Сума=" + String.valueOf(dataFormuls.sum));
llb4.setText(String.valueOf(dataFormuls.number) + " елементів");
System.out.println("Number= " + dataFormuls.number);
}
});
}
public void formuls() {
double el = 1;
float power = 1;
while (el >= e) {
el = elementFormuls(number);
sum = sum + el;
number++;
}
}
public int factorial(int n) {
if (n == 0) {
return 1;
} else {
int fac = 1;
for (int j = 1; j <= n; j++) {
fac *= j;
}
return fac;
}
}
public double elementFormuls(int n) {
return ((n * n * n) * Math.pow(x, (double) n) * x + 3) / (factorial(n) + (n * n)*x-5);
}
}