junit4测试期间与数据库的java连接

ipakzgxi  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(476)

我正在尝试为progressbar类创建测试,但我无法以标准方式访问mysql数据库。如何在测试中创建与db的连接?

public class progressBarTest {

@Resource(name = "jdbc/movie_user_database")
private static DataSource dataSource;

@BeforeClass
public static void setUpClass() throws Exception {
    MovieDatabaseUtil.getInstance().setDataSource(dataSource);
    System.out.println("DataSource created!");

}

@AfterClass
public static void tearDownClass() throws Exception {

}

@Test
public void getMovies() {
    List<Movie> movies = MovieDatabaseUtil.getInstance().getMovies();
    for (Movie m : movies
    ) {
        System.out.println(m.getTitle());
    }
}

@Test
public void progressCalculatorMovies() {
    ProgressBar progressBar = new ProgressBar();
    assertEquals(30, progressBar.progressCalculatorMovies());
}

}
当然,在运行之后,我得到了nullpointerexception。在运行测试之前,我向db添加了一些记录。

kuhbmx9i

kuhbmx9i1#

您应该模拟连接,而不是直接测试连接。mock和stubing允许您更好地测试被测试的类,并且不会因为数据库连接的问题而分心。它还允许您进行测试,而不必在实际的数据库条目上乱来。
我强烈推荐Mockito(https://site.mockito.org/)框架作为模拟此类接口的工具。

相关问题