2014-02-12 1 views
4

내가 자바 1.7Cobertura Java7 자원

  <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>cobertura-maven-plugin</artifactId> 
       <version>2.6</version> 
       <configuration> 
        <formats> 
         <format>html</format> 
         <format>xml</format> 
        </formats> 
       </configuration> 
      </plugin> 

에 받는다는와 cobertura 2.6을 사용하고 있습니다하지만 난 java7의 새로운 시도 -과 - 자원 기능을 사용하는 경우는 나에게 "이 아닌 기존의 캐치 '블록을 알려줍니다으로 시도 테스트에 빠졌습니다 ... try 블록의 닫는 괄호를 표시합니다.

잘못된 아이디어가 있습니까? 또는 어떻게 그들을 테스트 할 수 있습니까?

답변

2

문제는 리소스 시도와 관련하여 모든 사례를 테스트하지 않았기 때문입니다. 당신은 같은 것을 쓰기 때마다 :

try(Autocloseable ac = new Autocloseable()) { 
    //do something 
} catch(Exception e) { 
    //Do something with e 
} 

컴파일러는 같은 해석 : 그것은 정확히 같은 아닌

Autocloseable ac = null; 
Exception e = null; 
try { 
    ac = new Autocloseable(); 
    //Do something 
} catch (Exception e1) { 
    e = e1 
    //Do something with exception 
} finally { 
    if(ac != null) { 
    try { 
     ac.close(); 
    } catch (Exception e2) { 
     throw e == null? e2 : e; 
    } 
    if(e != null) throw e; 
    } 
} 

,하지만 어떻게 실제 코드 지점이 볼 수 있도록, 전반적인 생각입니다 당신이 생각할 수있는 것보다 훨씬 많습니다. 귀하의 보험 적용 범위를 개선하는 방법에 대한 아이디어를 얻길 바랍니다.