Spring集成Junit testNG

Spring专门为Junit testNG提供了一套测试集成接口类——AbstractSpringContextTests类,对于testNG就是其子类:AbstractTestNGSpringContextTests。Spring和testNG整合后,进行单元测试的时只要test类继承该类,就能够方便的使用spring注入。实现了spring和testNG的无缝整合,咱们能够像写普通类那样测试被spring IoC容器所管理的类(不然咱们必须在开始执行单元测试前从新加载Spring beanfactory,再用getBean("xxx")的方式获取IoC容器中类。)
 
除此之外,对测试类spring beanfactory缓存,使得多个测试类之间能够共享同一个的beanfactory实例,从而减小了重复生成beanfactory,提升了运行效率。
 
继承该类的测试用例在spring管理的事务中进行,测试完后对数据库的记录不会形成任何影响。你对数据库进行一些操做后,它会自动把数据库回滚,这样就保证了你的测试对于环境没有任何影响
 
 
 
集成代码以下


@ContextConfiguration(locations = {"classpath:spring/spring-mvc.xml"})
public class MyFirstTestNg extends AbstractTestNGSpringContextTests {}
package com.bestpay.cif.product.service; import cn.com.bestpay.Response; import com.bestpay.cif.core.enummodel.*; import com.bestpay.cif.product.bizparammodel.CustomerCreateReqDto; import com.bestpay.cif.product.bizparammodel.CustomerCreateResDto; import com.bestpay.cif.product.facade.CustomerProdFacade; import org.junit.Assert; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4Cla***unner; import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; /** * Created by laiwenhua on 2015/10/28. */ //@ContextConfiguration(locations = "classpath:spring/spring-mvc.xml") @ContextConfiguration(locations = {"classpath:spring/spring-mvc.xml"}) public class MyFirstTestNg extends AbstractTestNGSpringContextTests {    @Autowired    private CustomerProdFacade customerService;    @BeforeClass    public void beforeClass() {        System.out.println(customerService+"-----我的开户测试start---------------");    }    @Test    public void TestNgLearn() {        CustomerCreateReqDto dto = new CustomerCreateReqDto();        dto.setCustomerType(CustomerType.PERSON.getCode());        dto.setLoginName("13600000005");        dto.setBindMobile("13600000005");        dto.setTelecomCompany(TelecomCompany.DX.getCode());        dto.setRegChannel(CustRegChannel.STATIION.getCode());        dto.setDataSourceType(DataSourceType.NORMAL.getCode());        dto.setCertificateType(CertificateType.ID.getCode());        dto.setCertificateNo("22222222222014111304");        dto.setCustomerName("用户111304");        dto.setLoginType(LoginType.MOBILE.getCode());        dto.setLoginPwd("123456");        dto.setPayPassword("654321");        dto.setCreatedBy("webSys");        dto.setOccupation("IT");        dto.setGender("F");        dto.setEmail("lcd@163.com");        dto.setPostCode("200000");        dto.setHomePhone("66666666");        System.out.println("-------------------"+customerService);        Response<CustomerCreateResDto> res = customerService.createPersonCustomer(dto, "createPersonCustomerTest");        System.out.println("createPersonCustomerTest 返回结果:" + res.isSuccess() + " | " + res.getErrorCode() + " | " + res.getErrorMsg());        Assert.assertEquals(true, res.isSuccess());    }    @AfterClass    public void afterClass() {        System.out.println("-----我的开户测试end---------------");    } }
相关文章
相关标签/搜索