Java 循环的Junit测试

Java 循环的Junit测试,java,unit-testing,testing,junit,Java,Unit Testing,Testing,Junit,我正在自学Junit测试,我正在努力为以下代码创建一个测试 private ArrayList<AirbnbListing> List; public int getAvgReviews(){ int sums = 0; for (int i = 0 ; i < List.size(); i++){ AirbnbListing houses = List.get(i); if(houses.getPrice() >

我正在自学Junit测试,我正在努力为以下代码创建一个测试

 private ArrayList<AirbnbListing> List;

   public int getAvgReviews(){
    int sums = 0;
    for (int i = 0 ; i < List.size(); i++){
        AirbnbListing houses = List.get(i);
        if(houses.getPrice() >= fromValue && houses.getPrice() <= toValue){
            sums += houses.getNumberOfReviews();
        }
    }
    return (sums/getNoOfProperties());
}
私有数组列表;
public int getAvgReviews(){
整数和=0;
对于(int i=0;i如果(houses.getPrice()>=fromValue&&houses.getPrice()首先,您的列表未初始化。您可能希望更改函数以接受列表,以类似开头

public int getAvgReviews(List<AirbnbListing> listings){ ... }
public int getAvgReviews(列表列表){…}
在此基础上,我们可以编写简单或复杂的JUnit。例如:

@Test
public void simpleTest1(){
    List<AirbnbListing> list = new List<AirbnbListing>();
    // populate your list here with test elements
    // ie list.add(new AirbnbListing(...)); as many as needed

    // now if your list is 3 elements long with review ratings of [4, 5, 6],
    // we would want to test the assertion that getAvgReviews(list) is equal to 5

    assertTrue(getAvgReviews(list) == 5);
    // ... more assertions here if needed
}
@测试
public void simpleTest1(){
列表=新列表();
//在这里用测试元素填充列表
//ie列表。添加(新的AirbnbListing(…);根据需要添加
//现在,如果您的列表有3个元素,且审查评级为[4,5,6],
//我们想测试getAvgReviews(list)等于5的断言
assertTrue(getAvgReviews(list)==5);
//…如果需要,这里有更多的断言
}

什么是
列表
?私有数组列表;好的,发生了什么问题?您正在编写的测试在哪里?我不知道如何使用循环处理这种情况,我只能执行简单的Junit测试可能重复的