junit(单元测试框架)
注意事项:
- 使用junit测试一个方法的时候,在junit窗口上显示绿条那么代表测试正确,如果是出现了红条,则代表该方法测试出现了异常不通过。
- 如果点击方法名、 类名、包名、 工程名运行junit分别测试的是对应的方法,类、 包中 的所有类的test方法,工程中的所有test方法。
- @Test测试的方法不能是static修饰,不能带有形参。
- 如果测试一个方法的时候需要准备测试的环境或者是清理测试的环境,那么可以@Before、 @After 、@BeforeClass、 @AfterClass这四个注解。
JUnit4注解解释
- @Test : 测试方法,测试程序会运行的方法,后边可以跟参数代表不同的测试,如(expected=XXException.class) 异常测试,(timeout=xxx)超时测试
- @Ignore : 被忽略的测试方法
- @Before: 每一个测试方法之前运行。 所修饰的方法应是非static,没有参数,返回值为void
- @After : 每一个测试方法之后运行。 所修饰的方法应是非static,没有参数,返回值为void
- @BeforeClass: 所有测试开始之前运行。 所修饰的方法应是static,没有参数,返回值为void
- @AfterClass: 所有测试结束之后运行。 所修饰的方法应是static,没有参数,返回值为void
断言:
assertTrue(...) 参数的值应是true
assertFalse(...) 参数的值应是false
assertNull(...) 应是null值
assertNotNull(...) 应是非null的值
assertSame(expected, actual); expected 期望值,actual 真实值。用 == 比较期望与真实值
assertEquals(...) 用Equals方法比较
junit使用规范:
- 一个类如果需要测试,那么该类就应该对应着创建一个测试类,测试类的命名规范 : 被测试类的类名+Test.
- 一个被测试的方法一般对应着创建一个测试的方法,测试的方法的命名规范是: test+ 被测试的方法的方法名
========================================================================
内省
内省是用于操作java对象的属性的
应用实例:BeanUtils
开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以sun公司开发了一套API,专门用于操作java对象的属性。
但sun公司的内省API过于繁琐,所以Apache组织结合很多实际开发中的应用场景开发了一套简单、易用的API操作Bean的属性——BeanUtils
BeanUtils:
使用方法:- 导包 commons-beanutils-1.8.0.jar、commons-logging.jar (日志文件)
- BeanUtils.setProperty(bean,"name", value); //设置bean类中,name属性值为value
- ConvertUtils.register(converter, clazz); //注册一个类型转换器,设置属性时如果name属性为clazz类型时使用converter转换器将value转换
注册转换器可通过重写converter接口下convert方法转换类型
例:遇到Date类型时使用转换器
ConvertUtils.register(new Converter() {
@Override
public Object convert(Class type, Object value) { // type : 要转换的数据类型。 value :目前参数的值。
Date date = 将value转换为Date类型的代码;
return date;
}
}, Date.class);
注意事项:
- BeanUtils设置属性值的时候,如果属性是基本数据类型,BeanUtils会自动转换数据类型
- BeanUtils设置属性值的时候,底层也是依赖于对象类的get或者Set方法获取或设置属性值的
- BeanUtils设置属性值的时候,如果设置的属性是其他的引用类型数据,那么这时候必须要注册一个类型转换器
=========================================================================