JUnit4 测试期间与数据库的连接

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


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。在运行测试之前,我向数据库添加了一些记录。


繁华开满天机
浏览 377回答 1
1回答

心有法竹

您应该模拟连接而不是尝试直接测试连接。模拟和存根使您可以更好地测试被测类,而不会因数据库连接问题而分心。它还允许您进行测试而无需处理实际的数据库条目。我强烈推荐 Mockito (&nbsp;https://site.mockito.org/&nbsp;) 框架作为模拟此类接口的工具
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java