如何从主方法JAVA测试我的程序

如何从主方法JAVA测试我的程序,java,testing,methods,main,main-method,Java,Testing,Methods,Main,Main Method,我是Java新手。我想测试计算器中可用的方法。什么是最有效的测试方法 package BeginnerLevel; import java.util.Scanner; public class Calculator { 这是构造器: public Calculator(){ while (true){ System.out.println("Personal Calculator\n"+ "Addition---> 1 \n"+"Subtraction

我是Java新手。我想测试计算器中可用的方法。什么是最有效的测试方法

package BeginnerLevel;

import java.util.Scanner;

public class Calculator {
这是构造器:

public Calculator(){


  while (true){
      System.out.println("Personal Calculator\n"+
      "Addition---> 1 \n"+"Subtraction---> 2\n"+"Multiplication---> 3\n"+"Division---> 4\n"+"Exit--->0");
       Scanner input = new Scanner(System.in);

       int UsrIn= input.nextInt();

       input.close();


      switch (UsrIn){

      case 1: 
          Addition();
          break;
      case 2: 
          Subtraction();
          break;
      case 3:
          Multiplication();
          break;

      case 4:
          Division();
          break;

      case 0:
          break;  
      }


  }
}
这些是在开关情况下调用的方法

添加方法:

private void Addition(){

     Scanner input= new Scanner(System.in);

     double total=0;
     double firstnum=0;
     double secondnum=0;

     System.out.println("Enter Fist number: ");
     firstnum= input.nextDouble();

     System.out.println("Enter Fist number: ");
     secondnum=input.nextDouble();
    input.close();

     total= firstnum + secondnum;

    System.out.println("The result of Addition for "+ firstnum +" + "+secondnum+" is "+total);
}
private void Subtraction(){

    Scanner input= new Scanner(System.in);

    double total=0;
    double first=0;
    double second=0;

    System.out.println("Enter First number ");
    first=input.nextDouble();

    System.out.println("Enter Second number ");
    second=input.nextDouble();

    total= first-second;
    System.out.println("The result of Addition for "+ first +" + "+second+" is "+total);

    input.close();

}
private void Multiplication(){
Scanner input= new Scanner(System.in);

    double total=0;
    double first=0;
    double second=0;

    System.out.println("Enter First number ");
    first=input.nextDouble();

    System.out.println("Enter Second number ");
    second=input.nextDouble();

    total= first*second;
    System.out.println("The result of Addition for "+ first +" + "+second+" is "+total);

    input.close();
}
减法:

private void Addition(){

     Scanner input= new Scanner(System.in);

     double total=0;
     double firstnum=0;
     double secondnum=0;

     System.out.println("Enter Fist number: ");
     firstnum= input.nextDouble();

     System.out.println("Enter Fist number: ");
     secondnum=input.nextDouble();
    input.close();

     total= firstnum + secondnum;

    System.out.println("The result of Addition for "+ firstnum +" + "+secondnum+" is "+total);
}
private void Subtraction(){

    Scanner input= new Scanner(System.in);

    double total=0;
    double first=0;
    double second=0;

    System.out.println("Enter First number ");
    first=input.nextDouble();

    System.out.println("Enter Second number ");
    second=input.nextDouble();

    total= first-second;
    System.out.println("The result of Addition for "+ first +" + "+second+" is "+total);

    input.close();

}
private void Multiplication(){
Scanner input= new Scanner(System.in);

    double total=0;
    double first=0;
    double second=0;

    System.out.println("Enter First number ");
    first=input.nextDouble();

    System.out.println("Enter Second number ");
    second=input.nextDouble();

    total= first*second;
    System.out.println("The result of Addition for "+ first +" + "+second+" is "+total);

    input.close();
}
乘法方法:

private void Addition(){

     Scanner input= new Scanner(System.in);

     double total=0;
     double firstnum=0;
     double secondnum=0;

     System.out.println("Enter Fist number: ");
     firstnum= input.nextDouble();

     System.out.println("Enter Fist number: ");
     secondnum=input.nextDouble();
    input.close();

     total= firstnum + secondnum;

    System.out.println("The result of Addition for "+ firstnum +" + "+secondnum+" is "+total);
}
private void Subtraction(){

    Scanner input= new Scanner(System.in);

    double total=0;
    double first=0;
    double second=0;

    System.out.println("Enter First number ");
    first=input.nextDouble();

    System.out.println("Enter Second number ");
    second=input.nextDouble();

    total= first-second;
    System.out.println("The result of Addition for "+ first +" + "+second+" is "+total);

    input.close();

}
private void Multiplication(){
Scanner input= new Scanner(System.in);

    double total=0;
    double first=0;
    double second=0;

    System.out.println("Enter First number ");
    first=input.nextDouble();

    System.out.println("Enter Second number ");
    second=input.nextDouble();

    total= first*second;
    System.out.println("The result of Addition for "+ first +" + "+second+" is "+total);

    input.close();
}
划分方法:

private void Division(){
    Scanner input= new Scanner(System.in);
    double total=0;
    double first=0;
    double second=0;

    System.out.println("Enter First number ");

    first=input.nextDouble();

    System.out.println("Enter Second number ");
    second=input.nextDouble();

    total= first*second;
    System.out.println("The result of Addition for "+ first +" + "+second+" is "+total);

    input.close();

} 

}

欢迎推荐

您应该在程序中尝试Junit测试套件。
或者您可以使用调试模型来找出发生了什么

您的代码有很多错误。许多“错误”都与系统性测试的难度有关

在一个好的OO设计中,一个方法将执行一个任务,并且只执行一个任务。但您的方法混合了多个任务:

  • 请求和读取参数
  • 执行算术运算
  • 打印结果
你的构造器,构造器更糟糕。构造函数应该构造/初始化对象。它不应该包含对象的“业务逻辑”。重构类,使业务逻辑位于方法中。。。然后实例化类并调用方法

Ad@roomy表示,进行测试的正确方法是使用JUnit之类的框架开发一套单元测试。但您的应用程序需要设计为可测试的。。。通过调用方法并检查它们是否产生正确的结果

涉及输入和输出的测试比较困难,但如果您设置输入和输出流参数,则可以进行测试。另一种方法是创建一个“系统测试”,其中创建一个输入文件(或一组输入文件)和相应的预期输出文件,使用每个输入运行程序,并检查输出是否与预期输出匹配。提示:使用shell级别的文件重定向


除了以上几点之外,还有几个错误可能会让你难受:

  • 永远不要使用以大写字母开头的方法名称。这与公认的Java风格背道而驰。。。人们会对你抱怨,并指责你的风格

  • 在关闭
    系统时需要非常小心。一旦它们被关闭,您将无法重新打开它们,或对它们进行读/写操作

  • 还要注意不要丢弃可能已从底层输入源预读数据的扫描仪


  • 您应该研究java中可用的测试类型,例如jUnit测试。显示您的代码没有帮助。“这是我的方法”并不是很有帮助