1.3 spring boot test - xphsc/EasyJdbc GitHub Wiki

什么是easyjdbcSpring Boot Starter test?

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")
}

Using @EasyJdbcTest

如果您想测试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.

dao interface :

@Repository
public interface UserDao {
    @SqlSelect("SELECT * FROM t_user WHERE state = #{state}")
    City findByState(@SqlParam("state") String state);
}

TestCase class :

@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 {
    // ...
}

防止检测到真正的@springbootsapplication

默认情况下,@EasyJdbcTest将检测一个注释了@springbootsapplication的类。因此,依赖于bean定义方法,会出现意外错误或将不必要的组件加载到ApplicationContext中的情况。通过将@SpringBootApplication类创建到与测试类相同的包中,可以防止这种行为,如下所示:

@SpringBootApplication
public class UserDaoTestApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserDaoTestApplication.class, args);
    }
}
⚠️ **GitHub.com Fallback** ⚠️