我的测试部分如下:
@Test
//testing user report method of UserAdmin - number of users less than 10
public void testuserReport_SizeLessThan10() throws Exception
{
new Expectations() {{
dBConnection.getUsers();
times=1;
result= Arrays.asList("Abc","123");
}};
System.out.println("in less than 10");
userAdmin.runUserReport();
}
属于名为userAdmin的类的测试方法如下:
public void runUserReport() {
try {
List<User> users = dbConn.getUsers();
System.out.println(users.size());
if (users.isEmpty()) { // empty database
System.out.println("No users in database...");
} else if (users.size() <= 10) { // detailed reporting
System.out.println("Listing all usernames:");
for (User user : users) {
System.out.println(user.getUsername());
}
} else { // summary reporting
System.out.println("Total number of users: " + users.size());
System.out.println(users.get(0).getUsername());
System.out.println(users.get(1).getUsername());
System.out.println(users.get(2).getUsername());
System.out.println(users.get(3).getUsername());
System.out.println(users.get(4).getUsername());
System.out.println((users.size() - 5) + " more...");
}
} catch (SQLException sqle) {
System.out.println("DBConnection problem at runUserReport().");
}
}
我的测试通过将用户的大小设置为2来运行,但它不会打印以&#34开头的用户名;列出所有用户名:&#34;如方法中所定义。我是否在测试的期望部分错误地定义了结果?请帮忙
答案 0 :(得分:1)
我甚至不确定System.out.println(users.size());
如何将大小打印为2而不是测试失败。
List<User> users = dbConn.getUsers();
表示users
是用户类型列表,而result= Arrays.asList("Abc","123");
将result
作为字符串列表List<String>
。您正在将List<String>
分配给List<User>
,并且它在运行时不会失败。
您需要准备用户类型列表并分配给result
,而不是您当前正在执行的操作。