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