2017-10-26 4 views
1

Java 프로그램을 작성하여 JUnit 테스트 케이스에 대한 설명을하십시오. 예를 들어자동화 테스트를위한 계측

:

public Integer addIfXGreaterThanY(int x, int y){ 
    Integer z = null; 

    if (x > y) { 
     z = x + y; 
    } 
    else { 
     z = x - y; 
    } 

    return z; 
} 

출력 : 난 당신이 code coverage라고 할 생각은 무엇

Test case 1 inputs: 10, 15 
output(line numbers covered): 1, 2, 5, 6 
and another call will produce: 
Test Case 2 inputs: 15, 10 
output(line numbers covered): 1, 2, 3, 6 
+1

코드가 Java처럼 보이지 않지만 태그가 Java 및 JUnit입니다. 태그가 정확합니까? – Freiheit

+0

이것은 단지 의사 코드입니다. 예, 태그가 정확합니다. – Moni

답변

2

. Emma은 JUnit 코드 적용 범위 중 하나입니다. this question의 답변에는 몇 가지 다른 옵션이 있습니다.

+0

답변 해 주셔서 감사합니다. 자동화 된 도구를 사용하는 대신 명령문 범위를 찾기 위해 Java 프로그램을 작성할 수 있습니까? Instrumentation 클래스를 대신 사용할 수 있습니까? – Moni

+0

@ 모니 하나만 사용하는 대신 코드 적용 도구를 쓰고 싶다는 의사를 밝히기 위해 질문을 편집해야합니다. – Freiheit

+0

필자는 필요에 따라 질문을 편집했습니다. 감사합니다. – Moni

2

코드 커버리지보고 도구와 같은 소리가납니다. 이 라이브러리는 테스트 케이스 (일반적으로 junit 포함)로 덮어서 놓친 코드의 라인과 분기를 제공합니다. Jacoco 및 cobertura와 같은 도구는 대개 테스트를 통해 메서드에 적용되는 선과 분기를 제공합니다. java code coverage tools의 몇 가지 예를 사용할 수 있습니다. 개인적으로 나는 전에 junco와 함께 jacoco를 사용했습니다.

아마도 기존 코드 적용 도구 중 일부가 comparison일까요?

+0

감사합니다. 나는 실제로 그러한 도구를 하나 만들려고 노력하고 있습니다. junit 테스트 케이스에 대한 성명서를 찾는 데 도움이되는 'Instrumentation'과 같은 java에 미리 정의 된 클래스가 있습니까? – Moni

+0

개인적으로보고 도구를 작성하는 데 익숙하지 않았지만 실제로 도구가 실제로 작동하는 방식부터 시작하여 그들이 기반으로 한 이론이 도움이 될 것입니다. jacoco 관련 질문 : https://stackoverflow.com/questions/3051563/how-do-code-coverage-tools-work. 질문이 없으면 다른 질문을 추가하거나 질문의 ​​재구성을 원하십니까? –

관련 문제