Mysql 关于使用数据库进行Junit测试

Mysql 关于使用数据库进行Junit测试,mysql,oracle,junit,mocking,Mysql,Oracle,Junit,Mocking,我正在尝试在qa机器上执行junit,因为在qa机器上没有安装数据库,并且我们无法连接到其他机器上的数据库。 我可以问一下,我们有没有办法在junit中模拟数据库?就像我们用hadoop测试一样。 谢谢大家! 尝试使用本地数据库,如Hypersonic或Derby。可能不会。您可以使用一个非常简单的数据库,如H2,而不是Oracle或MySQL。实际上,使用hsql在测试中非常有用:)您的一个选择是使用H2数据库。只需将以下依赖项添加到pom.xml 在使用@BeforeClass(JUnit5

我正在尝试在qa机器上执行junit,因为在qa机器上没有安装数据库,并且我们无法连接到其他机器上的数据库。 我可以问一下,我们有没有办法在junit中模拟数据库?就像我们用hadoop测试一样。
谢谢大家!

尝试使用本地数据库,如Hypersonic或Derby。

可能不会。您可以使用一个非常简单的数据库,如H2,而不是Oracle或MySQL。

实际上,使用hsql在测试中非常有用:)

您的一个选择是使用H2数据库。只需将以下依赖项添加到pom.xml

在使用@BeforeClass(JUnit5)或@BeforeAll(JUnit4)注释的测试文件中,创建一个与生产数据库相同的数据库

@Autowired
AzDataConfiguration azData;

@Before
public void setUp() {
    jt = new JdbcTemplate(azData.azdataSource());
    jt.execute(Constant.creatAzureTable);
}
详情请参阅:

spring.az.datasource.url=jdbc:h2:mem:myDb;DB_CLOSE_DELAY=-1

spring.az.datasource.drive-class-name=org.h2.Driver
@Autowired
AzDataConfiguration azData;

@Before
public void setUp() {
    jt = new JdbcTemplate(azData.azdataSource());
    jt.execute(Constant.creatAzureTable);
}