【发布时间】:2020-07-21 05:57:18
【问题描述】:
我开发了一个应用程序,它通过控制台从用户那里获取详细信息,并将数据存储在 Mongo 数据库中。保存数据后,使用 spring api 将数据传递到角度前端。数据被传递到前端,没有任何错误。现在我需要对返回书籍列表的方法进行单元测试。
@RestController
@RequestMapping("/api")
public class Controller {
@Autowired
BookRepository bookRepo;
@GetMapping("/books")
public List<Book> getBooks(){
return bookRepo.findAll();
}
}
BookRepository 类与 MongoRepository 一起扩展。
到目前为止我写的单元测试。
class BookControllerTest {
private Controller controller;
private BookRepository repository;
@Test
public void getBooksTest(){
Book b1 = new Book("12345","James","male");
Book b2 = new Book("67890","Vicky","Female");
List<Book> bookList = new ArrayList<>();
bookList.add(b1);
bookList.add(b2);
System.out.println(bookList);
repository.save(b1);
repository.save(b2);
List<Book> newList = controller.getBooks();
System.out.println(newList);
assertEquals(bookList,newList);
}
}
尝试将数据保存到存储库时获得 java.lang.NullPointerException,我认为数组列表 'newList' 也是 null。
请帮我解决这个问题如何测试这个方法。
【问题讨论】:
-
这应该会有所帮助。 spring.io/guides/gs/testing-web
-
我想你忘了在 BookControllerTest 中自动装配“BookRepository 存储库”
标签: java spring unit-testing junit