Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于检索POJO对象的JUnit测试_Java_List_Unit Testing_Junit_Pojo - Fatal编程技术网

Java 用于检索POJO对象的JUnit测试

Java 用于检索POJO对象的JUnit测试,java,list,unit-testing,junit,pojo,Java,List,Unit Testing,Junit,Pojo,我有一个POJO学生 class Student { private final int roll; private final List<Year> years; // getters & setters } 我有一个班级来检索由一个被选中的学生注册的所有主修和辅修科目,比如说过去几年中的第一名 private final Student student; private final Set<SelectExpression> S

我有一个POJO学生

class Student 
{
  private final int roll;
  private final List<Year> years;

// getters & setters

}
我有一个班级来检索由一个被选中的学生注册的所有主修和辅修科目,比如说过去几年中的第一名

    private final Student student;
    private final Set<SelectExpression> SELECT_ROWS = new HashSet<>();

    public Set<SelectExpression> retrieveSubjects()
    {
        for (Year year : student.getYear())
        {
            SELECT_ROWS.add(new SelectExpression(
                sub.getMajor(),
                sub.getMinor()
            ));
        }
        return SELECT_ROWS;
    }
私人期末学生;
私有最终集SELECT_ROWS=new HashSet();
公共集检索对象()
{
for(年份:student.getYear())
{
选择行。添加(新选择表达式)(
sub.getMajor(),
附属法例(
));
}
返回选择行;
}
我该如何为此编写测试用例?
我是否必须手动指定几个主次科目来创建多个科目(sub1、sub2),并将其添加到表单列表中?那看起来太麻烦了。有更好的测试方法吗?

没有,我认为唯一的方法是像你建议的那样,注入合适的学生。如果这个过程很“麻烦”,那么我建议看看你的API,也许你可以设计得更好,使这个过程更容易。单元测试也是代码可用性的第一步。
    private final Student student;
    private final Set<SelectExpression> SELECT_ROWS = new HashSet<>();

    public Set<SelectExpression> retrieveSubjects()
    {
        for (Year year : student.getYear())
        {
            SELECT_ROWS.add(new SelectExpression(
                sub.getMajor(),
                sub.getMinor()
            ));
        }
        return SELECT_ROWS;
    }