Java JUnitSet和多个对象的问题

Java JUnitSet和多个对象的问题,java,object,junit4,Java,Object,Junit4,我很难让我的孩子配合。我将问题追溯到setUp方法,该方法创建了一个worker类的两个对象实例 public void setUp() throws Exception { company = new Company("New Source"); company.addEmployee("John", "Smith","Manufacturing"); company.addEmployee("Bob", "Brown", "Manufacturing"); c

我很难让我的孩子配合。我将问题追溯到setUp方法,该方法创建了一个worker类的两个对象实例

public void setUp() throws Exception {
    company = new Company("New Source");
    company.addEmployee("John", "Smith","Manufacturing");
    company.addEmployee("Bob", "Brown", "Manufacturing");
    company.addEmployee("Harold", "Jones", "Sales");
    company.addEmployee("Betty","Boop", "Design");

    //STUDENT: Create your own instance of company (studentCompany) and add employees.
    //You will use this studentCompany instance in the STUDENT test methods

    // create studentCompany instance and add employees
    studentCompany = new Company("Better Business");
    studentCompany.addEmployee("Barack", "Obama", "Manufacturing");
    studentCompany.addEmployee("George", "Bush Jr", "Sales");
    studentCompany.addEmployee("Bill", "Clinton", "Manufacturing");
    studentCompany.addEmployee("George", "Bush Sr", "Design");
现在,在测试print函数是否工作的单元测试中,它期望“John”,但实际上得到“Barack”

“我的打印”功能使用arraylist,如下所示:

String result = ""; // will hold string to return

result=companyName+"\n";  // insert company name in first line

for(int i=0;i < employees.size(); i++){ // for each member of Employee list
    Employee emp = employees.get(i);    // set Employee at Employeelist(i) to emp
    result+= emp.getFirstName() + " " + emp.getLastName() + " Position: " + emp.getPos() +"\n"; // add first, last name and position to line
}
return result; // return line
字符串结果=”;//将保持字符串返回
结果=公司名称+“\n”;//在第一行中插入公司名称
对于(int i=0;i

所以我的代码基本上是一团糟的,因为当JUnitTest调用setUp时,它会在company对象之后创建studentCompany对象,从而覆盖arrayList中的内容,对吗?如何解决这个问题?

公司和
学生公司应该有完全不同的员工名单。您的测试用例似乎还可以。我的期望是,
Company
类中有一个错误。@BevynQ测试用例来自教授,所以它必须是正确的。我几乎可以肯定我的错误在我的printCompany方法中。如果我真的必须这样做的话,我不完全确定应该如何创建几个公司对象的ArrayList。print方法提供的部分看起来还可以。我想知道员工是否被宣布为静态员工。使用调试器或在setUp()结束时记录员工的状态是您可以开始的地方。@BevynQ明白了!哦,我的天哪,我简直不敢相信我让员工们都静了下来-太感谢你了
String result = ""; // will hold string to return

result=companyName+"\n";  // insert company name in first line

for(int i=0;i < employees.size(); i++){ // for each member of Employee list
    Employee emp = employees.get(i);    // set Employee at Employeelist(i) to emp
    result+= emp.getFirstName() + " " + emp.getLastName() + " Position: " + emp.getPos() +"\n"; // add first, last name and position to line
}
return result; // return line