java单元测试返回void的方法
作者:网络转载 发布时间:[ 2013/1/21 10:40:54 ] 推荐标签:
大家写单元测试时候,一定比较不喜欢测试那些返回void的方法,因为大多数是执行一些动作序列,感觉没法测试,其实,对于这类方法,如果方法的执行是可能发生异常的,(比如方法本身用throws语句),那么这种方法算是void返回值,也是可以测试的。
举个例子,以下是我写的一个为返回void方法进行的单元测试:
1. @Test
2. public void testServeResource() throws Exception {
3. MockWebServer mockWebServer = new MockWebServer();
4. mockWebServer.init();
5. MockResourceRequest request = new MockResourceRequest();
6. request.setParameter("id", "4");
7. request.setParameter("name", "walmart");
8. MockResourceResponse response = new MockResourceResponse();
9. MockPortletPreferences preferences = new MockPortletPreferences();
10. preferences.setValue(RSLaunchConstants.RS_LAUNCH_PORTLET_PREFERENCE_REST_WS_URL, "http://localhost:28080/");
11. request.setPreferences(preferences);
12.
13. try{
14. rsLaunchPortlet.serveResource(request, response);
15. mockWebServer.destory();
16. assertTrue(true);
17. }catch(Exception ex){
18. //normally,the execution should never reach here ,so if reach here , we fail this UT
19. assertTrue(false);
20. }
21.}
我们可以看到,关键的地方在第13到20行之间,我们用一个try块包含了可能炮异常的代码段,并在这个块尾部加上assertTrue(true),而在catch块中加上assertTrue(false),那么结果很明了了,如果这个方法是正确的执行,那么它肯定是执行完try块中的所有的语句,所以会执行assertTrue(true)而显示绿条。但是如果这个方法执行不正确,那么会在14或者15行抛出异常,从而执行catch块中,所以会执行到19行,从而显示红条了。很简单吧。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11