Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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 在JUnit中测试类方法?_Java_Testing_Intellij Idea_Arraylist_Junit - Fatal编程技术网

Java 在JUnit中测试类方法?

Java 在JUnit中测试类方法?,java,testing,intellij-idea,arraylist,junit,Java,Testing,Intellij Idea,Arraylist,Junit,我目前正在编写一个需要一些JUnit测试示例的程序。我的计划的目标是按照导演的字母顺序对电影进行分类。我正在使用比较器类,它将获取电影的数组列表,并按导演的字母顺序对它们进行排序 问题1:无法使用我的JUnit测试类中的“add”方法将电影添加到阵列列表中,知道为什么吗 问题2:如何将DirectorComparator作为JUnit测试用例进行测试 Movie.java: import java.util.*; public class Movie { String title;

我目前正在编写一个需要一些JUnit测试示例的程序。我的计划的目标是按照导演的字母顺序对电影进行分类。我正在使用
比较器
类,它将获取
电影
数组列表
,并按导演的字母顺序对它们进行排序

问题1:无法使用我的
JUnit
测试类中的“add”方法将
电影添加到
阵列列表中,知道为什么吗

问题2:如何将
DirectorComparator
作为
JUnit
测试用例进行测试

Movie.java:

import java.util.*;

public class Movie {
  String title;

  String director;

  public Movie(String title, String director) {
    this.title = title;
    this.director = director;
  }

  public String getAuthor() {
        return author;
    }

  public static Comparator<Movie> DirectorComparator = new Comparator<Movie>() {
        public int compare(Movie movie1, Movie movie2) {
            String director1 = movie1.getDirector();
            String director2 = movie2.getDirector();
            return director1.compareTo(director2);
        }
    };
import java.util.*;
公映{
字符串标题;
字符串控制器;
公共电影(字符串标题、字符串导演){
this.title=标题;
this.director=director;
}
公共字符串getAuthor(){
返回作者;
}
public static Comparator director Comparator=new Comparator(){
公共整数比较(电影1、电影2){
字符串director1=movie1.getDirector();
String director2=movie2.getDirector();
返回director1.compareTo(director2);
}
};
MovieTest.java

 import org.junit.Test;
 import java.util.*;
 import static org.junit.Assert.*;

 public class MovieTest {

    Movie movie1("Star Wars", "Lucas, George");
    Movie movie2("ET", "Spielberg, Steven");
    Movie movie3("The Godfather", "Coppola, Francis Ford");

    ArrayList<Movie> Movies = new ArrayList<Movie>();

    Movies.add(movie1); <=== FIRST ISSUE, CANNOT USE "ADD"??

    @test
    <===== SECOND ISSUE, WHAT TYPE OF STRUCTURE TO USE FOR THE DIRECTORCOMPARATOR TEST CASE??
import org.junit.Test;
导入java.util.*;
导入静态org.junit.Assert.*;
公共级电影{
电影1(“星球大战”、“卢卡斯、乔治”);
电影2(“ET”,“斯皮尔伯格,史蒂文”);
电影3(“教父”、“科波拉、弗朗西斯·福特”);
ArrayList电影=新建ArrayList();

Movies.add(movie1);首先让我们稍微简化一下比较器的实现:

public class Movie {
    private String title;
    private String director;

    public Movie(String title, String director) {
        this.title = title;
        this.director = director;
    }

    public static final Comparator<Movie> DirectorComparator =
        Comparator.comparing(movie -> movie.director);
}
顺便说一句,要完成原始测试,您应该通过以下方式添加电影:

Movie movie1 = new Movie("Star Wars", "Lucas, George");
Movie movie2 = new Movie("ET", "Spielberg, Steven");
Movie movie3 = new Movie("The Godfather", "Coppola, Francis Ford");

List<Movie> movies = new ArrayList<>();
movies.add(movie1);
movies.add(movie2);
movies.add(movie3);
moviemovie1=新电影(“星球大战”、“卢卡斯、乔治”);
电影2=新电影(“ET”,“斯皮尔伯格,史蒂文”);
电影3=新电影(“教父”、“科波拉、弗朗西斯·福特”);
列表电影=新建ArrayList();
电影。添加(电影1);
添加(电影2);
添加(电影3);

但是这个集合与
DirectorComparator
没有任何关系。因此,在测试
DirectorComparator

这里的许多问题时不需要它。首先,DirectorComparator不是一个方法
Movie movie1 = new Movie("Star Wars", "Lucas, George");
Movie movie2 = new Movie("ET", "Spielberg, Steven");
Movie movie3 = new Movie("The Godfather", "Coppola, Francis Ford");

List<Movie> movies = new ArrayList<>();
movies.add(movie1);
movies.add(movie2);
movies.add(movie3);