使用testNG进行功能测试

我们使用spring的testng也可以实现像junit一样的功能测试。

1、引入jar包

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-test</artifactId>
</dependency>
<dependency>
    <artifactId>commons-dbcp</artifactId>
    <groupId>commons-dbcp</groupId>
    <version>1.4</version>
</dependency>

2、实现AbstractTestNGSpringContextTests类

引入启动容器的配置文件,这些配置文件在test目录下,只用于测试,一般配置的是测试环境地址分别是context配置、数据源配置和redis配置(如果用到了redis的话)

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
import org.testng.annotations.BeforeSuite;

@ContextConfiguration(locations = {"classpath:conf/spring/spring-context-test.xml",
        "classpath:conf/spring/spring-dal-test.xml","classpath:conf/spring/spring-redis-test.xml"})
public class BaseTestNG extends AbstractTestNGSpringContextTests {
    protected Logger LOGGER;

    @BeforeSuite(alwaysRun = true)
    public void init() {
        LOGGER = LoggerFactory.getLogger(this.getClass().getSimpleName());

    }
}

首先看spring-context-test.xml,主要是启动包扫描和CGLIB创建代理bean

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

   http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd

   http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

   <!-- 使用CGLIB自动创建代理Bean -->
   <aop:aspectj-autoproxy proxy-target-class="true" />
   <!-- 注册相关后置处理器,扫描包路径下的注解配置 -->
   <context:component-scan base-package="com.suning.teriste"/>
</beans>

然后是spring-dal-test.xml,配置数据源

<?xml version="1.0" encoding="GBK"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:jee="http://www.springframework.org/schema/jee"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
       http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
      <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
      <property name="url" value="jdbc:mysql://127.0.0.1:3306/test"/>
      <property name="username" value="test"/>
      <property name="password" value="test"/>
   </bean>
   <!-- DAL客户端接口实现 -->
   <bean id="dalClient" class="com.teriste.framework.dal.client.support.DefaultDalClient">
      <property name="sqlMapConfigLocation" value="classpath*:conf/sqlMap/sqlMap_*.xml" />
      <property name="dataSource" ref="dataSource" />
   </bean>
   <bean id="writeDalClient" class="com.test.framework.dal.client.support.DefaultDalClient">
      <property name="sqlMapConfigLocation" value="classpath*:conf/sqlMap/sqlMap_*.xml" />
      <property name="dataSource" ref="dataSource" />
   </bean>
   <!-- 用spring的事务管理 器 -->
   <!-- 事务实现begin -->
   <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
      <property name="dataSource" ref="dataSource" />
   </bean>
   <tx:annotation-driven transaction-manager="transactionManager"/>
   <!-- 事务实现end -->
</beans>

3、然后是在测试类中集成testng实现类,注意@Test注解是testng的注解

import com.teriste.BaseTestNG;
import com.teriste.intf.dto.UserInfoDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.annotations.Test;

public class UserInfoSqlServiceImplTest extends BaseTestNG{
    @Autowired
    private UserInfoSqlServiceImpl userInfoSqlService;

    @Test
    public void saveUserInfoTest(){
        String userId = "test";
        UserInfoDto userInfoDto = new UserInfoDto();
        userInfoDto.setDept("111");
        userInfoDto.setSalary("222");
        userInfoSqlService.saveUserInfo(userId, userInfoDto);
    }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值