package service; import java.lang.reflect.Method; import java.util.logging.Logger; import org.junit.Before; import org.junit.Test; import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.InvocationHandler; import project.service.UserService; public class TestCGLIB03 { private static Logger log= Logger.getLogger("TestCGLIB01"); private UserService proxy; @Before public void init(){ //1.构建目标对象 final UserService userService= new UserService(); //2.创建代理对象 //2.1创建增强器对象 Enhancer e=new Enhancer(); //2.2设置增强器的类加载器 e.setClassLoader( userService .getClass() .getClassLoader()); //2.3设置代理对象父类类型 e.setSuperclass( userService.getClass()); //2.4设置回调函数 e.setCallback(new InvocationHandler() { public Object invoke( Object proxy, Method method, Object[] args) throws Throwable { log.info("begin tx"); Object obj= method.invoke(userService, args); log.info("end tx"); return obj; } }); //2.5创建代理对象 proxy = (UserService)e.create(); } @Test public void testSaveUser(){ proxy.saveUser("tedu"); } @Test public void testUpdateUser(){ proxy.updateUser("tedu"); } } //JUnit (单元测试):基于方法单元进行测试 |
|
来自: 金银宝100 > 《jutil单元测试》