junit测试对象是否在arraylist中

vptzau2j  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(299)

嘿,伙计们刚刚开始使用junit,我有一个宠物和主人类,在主人类中,我正在尝试编写一个测试来查找某个宠物,并使用删除方法删除一个宠物和测试,以查看该宠物已经消失。我在owner中有一个名为findpet的方法,它接受一个id循环遍历arraylist中的所有宠物,并打印出具有匹配id的宠物

public int findPet(String petId)
    {
        int pos = -1;
        int i = 0;
        while (i < pets.size() && pos == -1)
        {
            if (pets.get(i).getPetId().equalsIgnoreCase(petId))
            {
                pos = i;
            }
            else
            {
                i++;
            }
        }
        return pos;
    }

到目前为止,我得到的是:

@Test
    public void testFindPet() {

        System.out.println("Testing the FindPet() method");
        Owner o1 = new Owner("OID57","John"); 
        o1.addPet("PID01","dog","bowwow",4); 
        o1.addPet("PID02","dog","shep",6); 
        o1.addPet("PID03","cat","meow",4); 
        o1.addPet("PID04","snake","wally",2);

        o1.removePet("PID01");

    }

那么,有谁能帮我找到如何写一个寻找宠物的测试吗?

ruarlubt

ruarlubt1#

你的测试是试图移除宠物,但大概应该是锻炼身体 findPet 方法。假设是这样,使用junitAssert:

@Test
public void testFindPet() {
    // Create an owner and some pets
    Owner owner = new Owner("OID57","John"); 
    owner.addPet("PID01","dog","bowwow",4); 
    owner.addPet("PID02","dog","shep",6); 
    owner.addPet("PID03","cat","meow",4); 
    owner.addPet("PID04","snake","wally",2);

    // Find a pet for this owner
    assertEquals(0, owner.findPet("P1D01"));

    // Check unknown pet
    assertEquals(-1, owner.findPet("unknown"));
}

(也假设 findPet 方法是所有者类的成员)。
你也可以考虑使用 @BeforeEach 创建可跨多种测试方法使用的所有者和宠物。

nzrxty8p

nzrxty8p2#

我建议你这样做

Owner owner;

@Before
public void setup() {
   owner = new Owner();
   //add pets to owner so that you dont have to do this in every test
   owner.addPet("PID01","dog","bowwow",4); 
   owner.addPet("PID02","dog","shep",6); 
   owner.addPet("PID03","cat","meow",4); 
   owner.addPet("PID04","snake","wally",2);
}

@Test
public void testFindPet() {
   int result = owner.findPet("PID04");
   owner.removePet("PID04");
   //checks if it removed certain pet
   assertNotEquals(result, owner.findPet("PID04"));
}

相关问题