1.3 spring boot test - xphsc/EasyJdbc GitHub Wiki
easyjdbc Spring Boot Starter测试帮助使用easyjdbc Spring Boot Starter为easyjdbc组件创建测试用例。
通过使用本模块,您可以: 可以使用@EasyJdbcTest,该测试组件用于测试纯easyjdbc组件 可以导入依赖项工件来执行纯easyjdbc组件的测试
maven 如果您正在使用Maven,只需将以下依赖项添加到pom.xml文件:
<dependency>
<groupId>cn.xphsc.boot</groupId>
<artifactId>easyjdbc-spring-boot-test</artifactId>
<version>2.0.0</version>
</dependency>
If using gradle add this to your build.gradle:
dependencies {
testCompile("cn.xphsc.boot:easyjdbc-spring-boot-test:2.0.0")
}
如果您想测试EasyJdbc组件(dao接口),可以使用@easyjdbctests。默认情况下,它将配置EasyJdbc配置EasyJdbc dao接口并配置内存中的嵌入式数据库。EasyJdbc测试是事务性的,默认情况下在每个测试结束时回滚,有关更多详细信息,请参阅Spring参考文档中的相关部分。同样,常规的@Component bean也不会加载到ApplicationContext中。
if you create a test case for following mapper interface, you add just @EasyJdbcTest on your test case class.
@Repository
public interface UserDao {
@SqlSelect("SELECT * FROM t_user WHERE state = #{state}")
City findByState(@SqlParam("state") String state);
}
@RunWith(SpringRunner.class)
@EasyJdbcTest
public class UserDaoTest {
@Autowired
private UserDao userDao ;
@Test
public void findByStateTest() {
City city = userDao .findByState("CA");
assertThat(city.getName()).isEqualTo("San Francisco");
assertThat(city.getState()).isEqualTo("CA");
assertThat(city.getCountry()).isEqualTo("US");
}
}
内存中的嵌入式数据库通常在测试中运行良好,因为它们速度快,不需要任何开发人员安装。但是,如果您希望对真实数据库运行测试,则可以使用@AutoConfigureTestDatabase,如下所示:
@RunWith(SpringRunner.class)
@EasyJdbcTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
public class UserDaoTest {
// ...
}
默认情况下,@EasyJdbcTest将检测一个注释了@springbootsapplication的类。因此,依赖于bean定义方法,会出现意外错误或将不必要的组件加载到ApplicationContext中的情况。通过将@SpringBootApplication类创建到与测试类相同的包中,可以防止这种行为,如下所示:
@SpringBootApplication
public class UserDaoTestApplication {
public static void main(String[] args) {
SpringApplication.run(UserDaoTestApplication.class, args);
}
}