我正在尝试学习Spring Boot中的测试。我试图测试模型,但后来遇到了NullPointer。让我们看一下代码。
Genre.java
public class Genre {
@Column(nullable = false)
@OneToMany(mappedBy = "genre", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<Movie> movieSet;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Set<Movie> getMovie() {
return movieSet;
}
public void setMovie(Movie movie) {
if (movieSet.size() == 0) {
movieSet = new HashSet<>();
}
movieSet.add(movie);
}}
GenreTest.java
public class GenreTest {
@Test
public void IdGetterSetter() {
Genre genre = new Genre();
genre.setId(1);
assertThat(genre.getId()).isEqualTo(1);
}
@Test
public void MovieGetterSetter(){
Genre genre = new Genre();
Movie movie = new Movie();
genre.setMovie(movie);
assertThat(genre.getMovie()).isEqualTo(movie);
}}
genre.setMovie(电影)收到NullPointer错误。我该怎么办?顺便说一句,我正在同一功能中测试我的getter和setter函数。我需要将它们分开还是可以这样使用吗?请给我一些意见。
答案 0 :(得分:0)
此:
public void setMovie(Movie movie) {
if (movieSet.size() == 0) {
movieSet = new HashSet<>();
}
movieSet.add(movie);
}}
movieSet是统一的。
您要么想要:
private Set<Movie> movieSet = new HashSet<>();
或者:
public void setMovie(Movie movie) {
if (movieSet == null) {
movieSet = new HashSet<>();
}
movieSet.add(movie);
}}