/* 单元测试 单元测试就是编写代码来检查方法的正确性. 方法是否能正常运行,我们如果自己一个一个运行太麻烦了,所以我们需要一个自动测试的工具. Junit单元测试框架可以灵活选择执行方法,也可以一键执行全部方法的测试,还可以生成测试报告. 如果有一个方法挂了,其他方法的测试不受影响 使用Junit框架前,我们需要进行jar包的导入,但通常IDEA已经自动集成了这个框架,直接ALT+ENTER即可导入 */ /* Junit 测试方法的注意点:必须是公开的,无参数无返回值的方法.使用@Test做标记,命名在原方法前加上Test 首先随便写两个方法模拟业务 方法1 public static String Login(String name,String password) { if ("admin".equals(name) && "123456".equals(password)) { return "成功"; } return "失败"; } 方法2 public static void check(){ System.out.println(10/0); } 接下来我们新建一个类起名为测试类,在里面写@Test的方法. 一键运行即可全部测试,右键整个工程可以运行所有测试方法 如果是对的会返回绿色,和期望不同会返回黄色,异常红色 @Test public void TestLogin(){ String rs = Login("admin", "123456"); 这个方法表示期望返回成功,rs是实际返回. Assert.assertEquals("成功",rs); } @Test public void Testcheck(){ check(); } 另外,除了@Test,还有@Before,@After(修饰实例方法,每个方法执行前后都执行一次),@BeforeClass,@AfterClass(修饰静态方法,每个类执行前后执行一次) 一般Before是用来初始化资源,After是用来释放资源. 比如测试其他方法,需要一些IO流,每次测试都需要一些新流,那就应该用@Before修饰 Unit5对这些注解进行了更改,改成了@Test,@BeforeEach/AfterEach,@BeforeAll/AfterAll */ /* 反射 反射是在运行时获取类的字节码文件对象,然后解析类中的全部成分 反射核心思想就是拿到编译后的Class文件对象 第一步我们要先拿到类 拿到类的方法: //方法1.获取Class对象,需要调用forName方法,入参填写包名+.+类名即可 Class c0 = Class.forName("d2_反射.Student"); System.out.println(c0); //方法2.用类名直接点class Class c1 = Student.class; //方法3.用对象的getclass方法,这个方法是来自于Object,所以所有对象都可以调用 Student s = new Student(); Class c2 = s.getClass(); 第二部我们要提供类拿到构造器对象,如何拿到constructor对象,首先要有一个类 Class c = Student.class; //此处调用的方法getConstructors只能拿到public修饰的构造器,返回的是构造器的数组. 可以用getDeclaredConstructors来获得全部构造器. Constructor[] constructors = c.getConstructors(); //遍历一下获得的构造器集合 for (Constructor constructor : constructors) { //其中getParameterCount表示获取构造器的参数个数 System.out.println(constructor.getName()+"-->"+constructor.getParameterCount()); } //此外,还可以用getConstructor(),里面可以填写参数类型,获得特定的一个构造
9.17单元测试,反射,注解,动态代理
最新推荐文章于 2024-08-18 21:36:31 发布
本文详细介绍了Java中的单元测试、反射、注解和动态代理技术。通过实例展示了Junit单元测试框架的使用,包括测试方法的编写、测试断言以及测试生命周期相关注解。接着讲解了反射的概念,包括获取类对象、构造器、成员变量和方法,并通过反射创建对象和调用方法。然后阐述了注解的定义、使用、元注解以及注解的解析过程。最后探讨了动态代理的优势和应用场景,通过代理对象实现了对方法的增强,例如性能分析。
摘要由CSDN通过智能技术生成