JUnit Testcase无法正常执行

时间:2016-03-18 13:33:05

标签: java junit

我正在尝试使用JUnit执行一个简单的测试用例,但是即使在错误的情况下,测试用例总是传递。我无法弄清楚下面程序中的错误。看起来某处Scanner类有多个输入错误。

我想测试测试用例的多个输入,以便测试用例接受不同的员工类型。

import java.util.Scanner;

import static org.junit.Assert.assertEquals;

public class EmployeeIdentificationTest extends TestCase {
    String firstName, middleName,lastName;
       int age=0;

       String choice=null;

       // assigning the values
       protected void setUp(){
          do{
            Scanner scanner = new Scanner(System.in);

           System.out.println("Enter  firstName  ");
           firstName= scanner.nextLine();
           System.out.println("Enter middleName");
           middleName= scanner.nextLine();
           System.out.println("Enter lastName");
           lastName= scanner.nextLine();
           System.out.println("Enter the age");
           int flag=0; 
           while(flag==0){
            try{
               age= scanner.nextInt();
               flag=1;
               }
               catch(Exception e){
               scanner.nextLine();
                System.out.println("Wrong entry, please enter digits only:");
            }
          }

        System.out.println("Do you like to fetch more records press Yes or No");
       scanner.nextLine();   
       choice=scanner.nextLine();
       }while(choice.contains("Y")||choice.contains("y"));      
       }
       // test method 
       public void testEmployee(){
       String employeeType=EmployeeIdentification.getEmployeeType(firstName, middleName, powerTrain, age);
       if(employeeType.equals("Junior Developer")||employeeType.equals("Senior Developer")||employeeType.equals("System Analyst")||employeeType.equals("Manager")||employeeType.equals("Delivery Head"))
       assert(true);
       }


}

3 个答案:

答案 0 :(得分:1)

来自Ldvg的有效点,我认为你的意思是:

public void testEmployee(){
    String employeeType = EmployeeIdentification.getEmployeeType(firstName, middleName, powerTrain, age);
    if(employeeType.equals("Junior Developer")||
        employeeType.equals("Senior Developer")||
        employeeType.equals("System Analyst")||
        employeeType.equals("Manager")||
        employeeType.equals("Delivery Head")) {
        assert(true);
    } else {
        assert(false);
    }
}

答案 1 :(得分:0)

assert(true);

此行将始终返回true。 assert关键字将评估后面给出的表达式。您必须断言用户选择的employeeType是您接受的一个(我猜您将它们保留在列表中)。

assert的用例可能如下所示:

assert(a+b == c);

如果您想验证a + b的结果是否等于c。

答案 2 :(得分:0)

JUnit检查各种断言以通过/未通过测试,所以如果你有

assert(true);

它将永远过去。

assert(false);

它总会失败。

使用断言期间需要测试的条件。即。

assert(employeeType.equals("Junior Developer"));