2016-10-19 3 views
1

나는 1 점이 붙어있어 제안이 필요합니다.돌연변이 살해

내 코드에 대해 junit을 쓰는 동안 ValidateArgument.notNull (arg1) 변이를 죽일 수 없습니다 !!!
제안이 필요합니다.

코드로 다음과 .. 생존 ​​/ 노키아/OSS/피규/RAC/일반/폴더의 유틸리티/ValidateArgument :: NOTNULL →

## 제거 호출 닷컴 에 얻기

public class A{ 

    public void method1(Object B){ 

      ValidateArgument.notNull(B); 
      .. 
      .. 
      .. 
    } 
} 

반환 유형은 void이 돌연변이를 죽일 수있는 방법은 무엇입니까?

+1

힌트 : varriable 이름은 camelCase로 이동합니다. 단 하나의 문자 및 예제 코드 인 경우에도 마찬가지입니다. – GhostCat

+0

내 대답에 대한 귀하의 의견을 말하면 ... 더 복잡해집니다. 그러므로 가장 먼저하고 싶은 일은 도움말 센터에서 "묻는 방법"을 읽는 것입니다. 알다시피, 당신은 뭔가 작동하지 않는다는 것을 우리에게 말하고 있습니다. 그러나 관련 세부 사항을 제공하지 않습니다. 어떤 도구를 사용하고 있는지, 어떤 버전을 사용하고 있는지 ... 긴 이야기 짧게 : 우리가 도와주기를 원하면 질문에 최소한의 완전하고 실용적인 예제를 제공해야합니다. 그러면 사람들이 설정이 깨진 부분을 이해할 수 있습니다 . 있는 그대로, 귀하의 질문에 ** 답변을 드릴 수 없습니다 **. – GhostCat

+0

팁 : * 다른 * 코드 조각이 죽을 수있는 경우; 어쩌면 거기에 차이점을 조사해야 할 수도 있습니다. – GhostCat

답변

0

ValidateArgument.notNull(B);의 목적은 무엇입니까?

우리는 널 (null)이 전달 될 때 NullPointerException을 던진다는 것을 알고 있습니다.

그렇다면 코드 줄을 쓸모 없게 삭제해야합니다. 그러면 method1을 호출 할 때 NullPointerException이 발생합니다. 즉, 테스트에서 지정한 동작이 동일합니다.

아니면 ValidateArgument.notNull 다른 중요한 사항이 있습니까? 어쩌면 유용하다는 예외 메시지를 생성합니까? 그렇다면 메시지가 존재 함을 확인하는 테스트를 작성해야합니다.

그러나 많은 프로그래머는 이와 같은 어설 션의 동작을 지정하는 테스트를 작성하지 않습니다 (그렇게하는 것이 합리적인지 여부는 작업중인 컨텍스트/도메인에 따라 다릅니다).

Pitest에는 일반적으로 단위 테스트를 거치지 않은 우려 사항 (다른 일반적인 사항은 기록 중)에서 돌연변이가 발생하지 않도록하는 기능이 있습니다.

avoidCallsTo 구성 매개 변수에 full.package.name.ValidateArgument을 추가하면 더 이상이 돌연변이가 생성되지 않습니다.

+0

의견을 보내 주셔서 감사합니다. 나는 ValidateArgument.notNull (B)를 사용했다; 코드의 불필요한 실행을 피할 수 있습니다. 코드를 실행하고 줄 줄을 기다리는 대신 다른 사람이 null로 내 메서드를 호출하면 내 코드에서 시작시 예외가 발생하고 처리 시간이 절약됩니다. 이것이 내가 이것을 사용한 유일한 이유입니다. – CryoMancer

1

여기에이 맞는지 확인하십시오. null (B)의 메소드를 호출하는 테스트가 있습니까?

B가 null 일 때 유효성 검사 메소드가 예외를 throw해야합니다. null로 메소드를 테스트하지 않으면, 한 라인이 실제로 실행되는지 여부가 달라지지 않습니다!

+0

예 null로 메소드를 호출하는 테스트가 있습니다. 내 테스트 케이스는 다음과 같습니다. - – CryoMancer

+0

@Test (expected = NullPointerException.class) public void testForvalidation() { testObject.method1 (null); } 하지만 아직도 돌연변이를 죽일 수 없습니다. – CryoMancer

+2

ValidateArgument.notNull (B)를 주석 처리하면 테스트가 실패합니까? 선? – henry