1.进行Junit:
直接在ContextConfiguration注解里加上配置类
@ContextConfiguration(classes= {SpringJDBC.class}),然后写测试方法,上面添加@Test就可以用测试运行方式运行
@RunWith(value=SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={SpringJDBC.class})
public class TestRun
{
@Autowired
private TestMapper mapper;
@Test
public void testRunMapper()
{
for(SysUser sysUser:mapper.getAllUsers())
System.out.println(sysUser);
}
}
2.定义AnnotationConfigApplicationContext
public class TestRun
{
public static void main(String[] args)
{
// 初始Spring框架的配置上下文,使用的是AnnotationConfigApplicationContext,支持注解的配置加载
AnnotationConfigApplicationContext ctx=null;
try
{
// 加载配置类,和ClassPathXmlApplicationContext("XXXXXXXXXX.xml")是一样的原理
ctx=new AnnotationConfigApplicationContext(SpringJDBC.class);
// 获取一个已经通过配置注册到spirng里的bean,推荐使用class映射;
TestMapper mapper=ctx.getBean(TestMapper.class);
// 正常执行这个bean所生成的类
for(SysUser sysUser:mapper.getAllUsers())
System.out.println(sysUser);
}
catch(Exception e)
{
// 捕获异常,一般是配置异常
// 因为用的是class映射,所以不会出现类找不到的错误,若出现,应该是配置里为设置这个类的扫描或者加载,所以也归为配置异常
e.printStackTrace();
}
finally
{
// 在完成测试之后要关闭清空整个测试类及spring内的配置和bean,因为注解式配置是不会自动关闭,所以需要手动关闭;
// 若问题出现在加载配置类阶段,则一般不会创建出spring上下文实例,直接就销毁了
// 所以当问题发生在之后的阶段,发生异常会被异常捕获,然后也会在这里关闭
if(ctx!=null)
ctx.close();
}
}
}
两种方法都可以在无配置文件的纯注解环境下进行单元测试,个人喜欢第二种,因为可以直观的在代码里跟踪spring的运行状态,而且可以添加一些自己的配置和设置