Я должен создать JUnit
чехлы для этого класса. Один из тестов - проверить конструктор класса ShannonsTheorem
. Есть ли способы проверить конструктор, который не имеет каких-либо параметров?Junit - тестовый конструктор без параметров?
Существует еще один класс с именем ShannonsModel
, который также должен иметь свой конструктор. В соответствии с UML мы были предоставлены, нет никаких параметров в этом конструкторе.
Спасибо!
package network;
import java.util.InputMismatchException;
import java.util.Scanner;
public class ShannonsTheorem {
ShannonsModel model = new ShannonsModel();
Scanner kb = new Scanner(System.in);
/**
* default constructor for ShannonsTheorem class.
*
*/
public ShannonsTheorem()
{
}
/**
* Method to return the value in bandwidth variable.
* @return
*/
public double getBandwidth()
{
return model.getBandwidth();
}
/**
* getSignalToNoise method to return the signalToNoise value in variable signalToNoise
* @return
*/
public double getSignalToNoise()
{
return model.getSignalToNoise();
}
/**
* main method for ShannonsTheorem
* @param args
* while loop to handle user input to continue or end program
*/
public static void main(String[] args)
{
try {
Scanner kb = new Scanner(System.in);
Scanner scan = new Scanner(System.in);
boolean stop = false;
while(!stop) {
ShannonsTheorem ST = new ShannonsTheorem();
System.out.println("Enter bandwidth in hertz:");
ST.setBandwidth(kb.nextDouble());
System.out.println("Enter signalToNoise:");
ST.setSignalToNoise(kb.nextDouble());
System.out.println("Values are:");
System.out.println("Bandwidth");
System.out.println(ST.getBandwidth());
System.out.println("SignalToNoise:");
System.out.println(ST.getSignalToNoise());
System.out.println(ST.maxiumumDataRate());
System.out.println("Press any key to make another calculation. Type N or n to Quit");
String s = scan.nextLine();
if(s.equals("n") || s.equals("N")) {
stop = true;
} // end of if
} // end of while loop
}catch (InputMismatchException e){
System.out.println("Input Exception was caught, restart program");
}catch(NumberFormatException e){
System.out.println("Format Exception was caught, restart program");
}
}
/**
* public method to retrieve the maximum data rate. This method makes a call to the private method
* under the same name.
* @return
*/
public double maxiumumDataRate()
{
// calling to the private method maxiumumDataRate. Storing the return value from said method into variable result
// when this public method is called it will return the result from the private method,
double result = model.maxiumumDataRate();
System.out.print(model.toString());
return result;
}
/**
* setBandwidth method to set the bandwidth value in hertz
* @param h
*/
public void setBandwidth(double h)
{
model.setBandwidth(h);
}
/**
* setSignalToNoise method to set the signalToNoise variable
* @param snr
*/
public void setSignalToNoise(double snr)
{
model.setSignalToNoise(snr);
}
}
Испытание это точно так же, как конструктор с параметрами, просто не проходят какие-либо параметры в нем. – talex
Что сказал талекс. Совсем не так. Если вы хотите получить более конкретную информацию, вы можете проверить ожидаемые переменные экземпляра созданного класса и убедиться, что это то, что вы ожидаете от конструктора no arg. –
Что бы я точно тестировал? Класс не имеет полей для инициализации конструктора. Я думаю, что здесь меня больше смущает. –