我正在尝试为我的 progressBar 类创建测试,但我无法以标准方式访问 MySQL 数据库。我应该如何在测试中创建与数据库的连接?public class progressBarTest {@Resource(name = "jdbc/movie_user_database")private static DataSource dataSource;@BeforeClasspublic static void setUpClass() throws Exception { MovieDatabaseUtil.getInstance().setDataSource(dataSource); System.out.println("DataSource created!");}@AfterClasspublic static void tearDownClass() throws Exception {}@Testpublic void getMovies() { List<Movie> movies = MovieDatabaseUtil.getInstance().getMovies(); for (Movie m : movies ) { System.out.println(m.getTitle()); }}@Testpublic void progressCalculatorMovies() { ProgressBar progressBar = new ProgressBar(); assertEquals(30, progressBar.progressCalculatorMovies());}}当然,运行后我得到了 NullPointerException。在运行测试之前,我向数据库添加了一些记录。
1 回答
心有法竹
TA贡献1866条经验 获得超5个赞
您应该模拟连接而不是尝试直接测试连接。模拟和存根使您可以更好地测试被测类,而不会因数据库连接问题而分心。它还允许您进行测试而无需处理实际的数据库条目。
我强烈推荐 Mockito ( https://site.mockito.org/ ) 框架作为模拟此类接口的工具
添加回答
举报
0/150
提交
取消