赞
踩
为了统一司内的单元测试编写风格,且让大家无需考虑不重要的事情(无脑按着条条框框执行就好了),专注于写单元测试。基于司内的具体情况,制定了一套简单的《单元测试编写规范》。在这里进行分享,希望能给大家提供一些思路。
该规范针对两个对象,一个是被测试的方法,一个是单元测试。
需要在有测试用例的方法上进行标记,用来提醒维护人在进行代码维护的同时还要持续维护对应的测试用例。我们采用自定义注解 @testcase 来标记当前方法对应的测试用例,如下:
/**
* 发货申请明细暂不发货
*
* @testcase com.annoroad.ticket.service.ApplyOrderServiceTestCase
* @param code 编号(UUID)
* @param updateBy 创建人
* @param updateByName 创建人名称
*/
@Transactional(rollbackFor = Exception.class)
public void notDelivery(String code, String updateBy, String updateByName) {
......
}
制定原因: 因为司内单元测试用例覆盖度不高,不知道哪个方法有单元测试。将有对应单元测试的方法进行标记,便于未来该方法变更的时候,提醒程序猿本次变更可以依赖单元测试进行验证。
/**
* 测试目标:要测试的类和方法,例如:com.annoroad.xxx.service.HelloService.sayHello
* 场景:对要测试的场景进行描述
* 期望:对期望结果的描述
*/
@Test
public void testSayHelloSuccess() {
......
}
/**
* 测试目标:com.annoroad.ticket.service.ApplyOrderService.notDelivery
* 场景:成功
* 期望:成功
*/
@Test
public void testNotDeliverySuccess() {
......
}
/** * 测试目标:com.annoroad.ticket.service.ApplyOrderService.notDelivery * 场景:申请单中明细的状态为暂不发货 * 期望:抛出 BizException(ResponseCode.APPLY_ORDER_DEVICE_NOT_ALLOW) */ @Test public void testNotDeliveryFail1() { ...... } /** * 测试目标:com.annoroad.ticket.service.ApplyOrderService.notDelivery * 场景:申请单中明细的状态为已发货 * 期望:抛出 BizException(ResponseCode.APPLY_ORDER_DEVICE_NOT_ALLOW) */ @Test public void testNotDeliveryFail2() { ...... } /** * 测试目标:com.annoroad.ticket.service.ApplyOrderService.notDelivery * 场景:不存在与 code 对应的申请单明细 * 期望:抛出 BizException(ResponseCode.APPLY_ORDER_DEVICE_NOT_EXIST) */ @Test public void testNotDeliveryFail3() { ...... }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。