由于SSM项目的类都是由Spring
容器托管,所以直接进行用new对象
调用方法进行测试是不行不通的,会出现空指针异常NullPointExpection
.
因为我们的对象由spring
进行托管,调用的类可能存在属性是通过spring
自动注入进行赋值的,调用数据库的Mybatis框架
也是整合到Spring
中的,所以测试之前须先启动Spring容器
。
然后再获取Bean对象
,能进行之后的测试。
ServiceTest.java
package com.juyss.test;
import com.juyss.bean.TMenu;
import com.juyss.service.MenuService;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.List;
public class ServiceTest {
private ClassPathXmlApplicationContext context;
@Before //Junit包下的
public void init(){
//作用是初始化Spring容器
context = new ClassPathXmlApplicationContext("classpath:spring/spring-*.xml");
}
@Test //Junit包下的
public void Test(){
//通过容器获取要测试的类的对象
MenuService service = context.getBean(MenuService.class);
//然后再执行要测试的操作
List<TMenu> list = service.getMenuList();
for (TMenu menu : list) {
System.out.println(menu);
}
}
}
了解以上过程后,其实我们可以简写为以下代码
public class ServiceTest {
@Test
public void Test(){
//初始化Spring容器
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/spring-*.xml");
//从容器中获取Bean
MenuService service = context.getBean(MenuService.class);
//在对Bean对象进行操作
List<TMenu> list = service.getMenuList();
for (TMenu menu : list) {
System.out.println(menu);
}
}
}