最佳实践:单元测试代码和被测试代码使用一样的包,不同的目录。
测试你的equals方法
assertEquals()
framework将基本类型当作数值来比较(而不是对象)。
方法的返回值是对象:
1)取回返回值所有可读的属性值。
2)创建一个代表期望值的对象。
如果你的对象不是数值对象,那么就无须去测试它们的相等性。
Mike Bowler
GSBase(http://gsbase.sourceforge.net)
EqualsTester
“RST”原则(反身性、对称性、传递性)
assertFalse()
JUnit-addons(http://junit-addons.sourceforge.net)
EqualsHashCodeTestCase
assertNotEquals()
测试一个没有返回值的方法
1. 创建一个空容器
2. 查询该容器应该得不到任何项
3. 将对象添加到容器中,并查询容器
4. 现在容器包含了刚才添加的项
测试构造函数
测试获取器
测试设置器
------------------------------------------------------------------------------------
最佳实践:测试任何可能的错误。单元测试不是用来证明您是对的,而是为了证明您没有错。
fixture:在执行一个或者多个测试方法时需要一系列公共资源或者数据,例如测试环境、测试数据等等。
方法级别
1. @Before
2. @After
3. public void
类级别
1. @BeforeClass
2. @AfterClass
3. public static void
异常和时间测试
expected、timeout
忽略测试方法
@Ignore
测试运行器
@RunWith(CustomTestRunner.class)
测试套件:批量运行测试类
1. 创建一个空类(入口)
2. @RunWith、@Suite.SuiteClasses
3. @RunWith(Suite.class)
4. @Suite.SuiteClasses(TestXX.class)
5. public
参数化测试
1. @RunWith(Parameterized.class)
2. 声明变量,用于存放期望值和测试所用数据
3. @Parameters、public static Collection
4. 声明一个带有参数的公共构造函数,为2中声明的变量赋值
5. 测试
JUnit和Ant
------------------------------------------------------------------------------------
测试接口(?)
测试JavaBean
参考资料:
1. 《JUnit Recipes中文版》
2. 单元测试利器 JUnit 4(http://www.ibm.com/developerworks/cn/java/j-lo-junit4/)