Java 如何为arraylist(按位置检索数据)编写Junit测试用例??。请选择下面的代码
这是完整的代码。我需要写一个测试用例。请帮助我编写测试用例,我是一名初学者,对Junit非常陌生Java 如何为arraylist(按位置检索数据)编写Junit测试用例??。请选择下面的代码,java,arraylist,junit,Java,Arraylist,Junit,这是完整的代码。我需要写一个测试用例。请帮助我编写测试用例,我是一名初学者,对Junit非常陌生 public class Register1 { String name; String location; int id; int salary; public Register1(String name, String location, int id, int salary) { this.name = name; t
public class Register1 {
String name;
String location;
int id;
int salary;
public Register1(String name, String location, int id, int salary) {
this.name = name;
this.location = location;
this.id = id;
this.salary = salary;
}
}
import java.util.*;
public class Employee {
public static void main(String[] args) {
ArrayList<Register1> Emp = new ArrayList<Register1>();
Emp.add(new Register1("Jack", "London", 101, 800));
Emp.add(new Register1("Mike", "UK", 100, 60000));
Emp.add(new Register1("Andrew", "China", 103, 2000));
Emp.add(new Register1("Michel", "Korea", 106, 300000));
Emp.add(new Register1("Donald", "London", 102, 90000));
List<Register1> reg = new ArrayList<Register1>();
String input = "London";
for (Register1 adrs : Emp) {
if (adrs.location.equals(input)) {
reg.add(adrs);
}
}
for (Register1 adrs : reg) {
System.out.println("Employee from London:" + adrs.salary + " "
+ adrs.location + " " + adrs.id + " " + adrs.name);
}
}
}
公共类寄存器1{
字符串名;
字符串位置;
int-id;
国际工资;
公共注册表1(字符串名称、字符串位置、整数id、整数工资){
this.name=名称;
这个位置=位置;
this.id=id;
这个。薪水=薪水;
}
}
导入java.util.*;
公营雇员{
公共静态void main(字符串[]args){
ArrayList Emp=新的ArrayList();
Emp.add(新登记册1(“杰克”,“伦敦”,101,800));
Emp.add(新登记册1(“Mike”,“UK”,10060000));
Emp.add(新登记册1(“安德鲁”,“中国”,103,2000年));
Emp.add(新登记册1(“Michel”,“Korea”,106300000));
Emp.add(新登记册1(“唐纳德”,“伦敦”,10290000));
List reg=new ArrayList();
字符串输入=“伦敦”;
用于(注册1 ADR:Emp){
if(adrs位置等于(输入)){
注册添加(adrs);
}
}
对于(注册人1 ADR:reg){
System.out.println(“来自伦敦的员工:+adrs.salary+”)
+adrs.location+“”+adrs.id+“”+adrs.name);
}
}
}
输出:
伦敦员工:800伦敦101杰克
伦敦员工:90000 London 102 Donald首先,我要将程序的“逻辑”部分提取到一个单独的方法中:
public static List<Register1> filtrerByLocation (List<Register1> emp, String location) {
List<Register1> reg = new ArrayList<Register1>();
// A for loop would be nicer, IMHO, but keeping OP's style
Iterator<Register1> itr = emp.iterator();
while (itr.hasNext()) {
Register1 res = (Register1) itr.next();
if (res.location.equals("London")) {
reg.add(res);
}
}
}
具体来说,你的问题是什么?你想测试什么?@Mureinik你编辑了什么?你清楚他的问题是什么吗?通常你将对一个接受输入并生成输出的方法进行单元测试。上面的
main
方法不使用其输入,也不生成输出。请查看JUnit或TestNG的文档,然后发布一个问题。@dubey theHarcourtians我修复了代码缩进并应用了标记以获得正确的语法突出显示。这是一个明显的编辑,使问题更容易阅读,无论OP可能想提供任何澄清。感谢Mureinik,这似乎是更好的方式。
@Test
public void testFiler() {
List<Register1> emp = new ArrayList<Register1>();
emp.add(new Register1("Jack", "London", 101, 800));
emp.add(new Register1("Mike", "UK", 100, 60000));
emp.add(new Register1("Andrew", "China", 103, 2000));
emp.add(new Register1("Michel", "Korea", 106, 300000));
emp.add(new Register1("Donald", "London", 102, 90000));
List<Register1> res = filterByLocation(emp, "London");
assertEquals (2, res.size());
assertEquals ("Jack", res.get(0).getName());
assertEquals ("Donald", res.get(1).getName());
}