我正在尝试在没有安装数据库的qa机器上执行junit,我们无法连接到其他机器上的数据库。 请问有没有办法在junit中模拟数据库?就像我们用hadoop测试一样。 谢谢!
答案 0 :(得分:1)
尝试使用Hypersonic或Derby等本地数据库。
答案 1 :(得分:1)
实际上使用hsql在测试中可能非常有用:)
答案 2 :(得分:0)
可能不是。您可以使用非常简单的数据库,如H2而不是Oracle或MySQL。
答案 3 :(得分:0)
您的一个选择是使用h2database。只需将以下依赖项添加到您的 pom.xml
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.194</version>
</dependency>
在Spring Boot项目的test文件夹下添加 application.properties 文件。 (Spring在执行Junit测试时会首先在测试文件夹下查找属性文件)
只需将所有数据库参数替换为以下值:
spring.az.datasource.url=jdbc:h2:mem:myDb;DB_CLOSE_DELAY=-1
spring.az.datasource.drive-class-name=org.h2.Driver
在使用@BeforeClass(Junit 5)或@BeforeAll(Junit 4)注释的测试文件中,创建一个与生产数据库相同的数据库。
@Autowired
AzDataConfiguration azData;
@Before
public void setUp() {
jt = new JdbcTemplate(azData.azdataSource());
jt.execute(Constant.creatAzureTable);
}
有关详情,请参阅此:https://docs.spring.io/spring/docs/1.2.x/reference/jdbc.html