我正在尝试使用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);
}
}
答案 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"));