我使用的是Spring Boot 1.5.8。请在内存数据库中使用H2编写测试用例。目前在每个测试用例类中,我们都有@Before注释,我们使用Spring Data类插入数据。
我想知道,我可以在项目中有一个位置,我们可以为所有测试用例定义数据。数据库表由Hybernate使用实体类创建。唯一需要的是在每个测试用例类中从单个位置而不是从@Before插入数据。
我尝试使用包含Insert语句的 data.sql ,但是使用它,Spring不生成模式对象(表),因为我找不到表的错误。我不想为schema.sql
中的每个表指定Create Table语句应用test.yml
%My signal: y = 0.001*cos(0.005*pi*t+pi/4);
A = 0.001;
T = 400;
f = 0.0025;
pi = 3.14;
syms m
m=-1:1;
wm=(1/T)*(int((0.001*cos(0.005*pi*t + pi/4))*exp(-j*m*0.005*pi*t),t,0,T));
ww=double(wm);
Amp=abs(ww);
fi=angle(ww);
w=m*2*pi/T;
f=w/(2*pi);
figure('Name','Amplitude spectrum');
stem(f,Amp,'linewidth',2,'color','r'),grid on;
title('Amplitude spectrum'), xlabel('?[rad/s]'), ylabel('|wm|');
schema.sql文件
spring:
datasource:
url: jdbc:h2:mem:test;
driverClassName: org.h2.Driver
username: sa
password:
jpa:
database: h2
database-platform: org.hibernate.dialect.H2Dialect
hibernate:
ddl-auto: create
naming.physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
properties:
hibernate:
show_sql: true
format_sql: false
AbcControllerTest.java
CREATE SCHEMA AB AUTHORIZATION SA;
答案 0 :(得分:2)
创建用@Component @Profile({ "dev", "test" })
注释的新类,然后实现CommandLineRunner
,然后注入依赖项
使用CommandLineRunner附带的初始数据覆盖 run()方法
例如
@Component
@Profile({ "dev", "test" })
setupInitialData implements CommandLineRunner {
UserService userService;
//bla bla
@Override
@Transactional
public void run(String... args) {
User user = new User;
user.setName("test");
userService.save(user);
//bla bla
}
}