을 만들 JUnit 에 대한 테스트 방법을 덮는 그것의 모든 호출 Eclipse 에서 작업 영역
-
11-12-2019 - |
문제
가정 할 수 있습 다음 Java 클래스:
class MyClass {
public String methodA( String data, String expression ) {
// expression is evaluated using data
// ...
// this leads to a result which is returned
return result;
}
}
트 expression
인스턴스는 식의 언어(DSL).따라서,평가 expression
용 data
의 조합에 따라 달라집니다.일반적으로, expression
고정 값을 변경되지 않는 자주 data
를 통해 변경할 수 있습의 모든 호출.
론,언젠가 나중에 버그에서 발견 MyClass.methodA(String,String)
.버그에 있는 몇 가지 기본 클래스고만이 발생한 특별한 조합의 expression
고 data
.JUnit 테스트 쉽게 쓴 이를 위해 특별한 경우 수정할 수 있습니다.
불행하게도,이 방법은 자주 사용되는 전체에 걸쳐 프로젝트입니다.Eclipse 화 계층을 식별하는 이상 97 는 다른 방법을 이 방법이 사용됩니다.나는 지금 두려움 회귀분석,경우만 적용 버그 수정.더 많은 느낌을 안전하고 싶지 회귀분 테스트합니다.
일반적으로,단위 테스트 고려해야 하는 모든 중요한 종류의 호출,특히 국경 경우입니다.하지만, expression
은 DSL 다를 수 있는 매우 쉽지 않았을 테스트-덮개는 모든 잠재적 사용합니다.또한,이러한 테스트를 것이라는 확인하지 않을 거짓 사용에 의존하고 있습니다.
그래서 나는 아이디어로 진행 방법은 다음과 같습니다.
을 찾아의 모든 호출 이 방법(처럼 사용하는"통화 계층구조에서"이클립스)및추출물에 대한 모든 값
expression
.샘플 충분한 실제 값
data
(예:에서 데이터베이스)및 크로스 모두를 평가하는 표현에서 첫 번째 단계에 원본을 사용하여 버전MyClass.methodA(String,String)
.트리플 저장(data, expression, result)
하는 파일입니다.구현하는 버그 수정.
테스트 방법
MyClass.methodA(String,String)
위의 파일을 사용하여 주장하는 결과가 변하지 않았습니다.
다음과 같은 질문:
당신은 무엇을 생각하는 이 방법?
전화를 사용하고 계층구조에서 이클립스 나만 복사 및 붙여넣기를 호출하는 방법 하지만 정확한 호출을 포함하여 인수하는 클립보드(cf.1 단계).내가 가진 것을 복사를 호출하여 호출에 의해 손으로 각 방법에서 발견된다.나는 어떻게 추출 호출에는 편리한 방법(전체에서 이클립스 workspace,따라서 여러 프로젝트)?
이럴 나는 단지 하나의 테스트 방법을 따라서 테스트를 포함됩니다.은 그것을 사용하는 것이 확인 JUnit 위해 4 단계 더 정교한가?
해결책
으로 예상되는 추가적인 값을 테스트하여 소프트웨어를 커버는 가장 상황에 가장 저렴한 비용과 최대의 결과로의 접근 방식이다.
수집하는 실생활 samplevalues 에서 소프트웨어 및 저장 대표적인 파일하지 않아야 복잡을 실현하고 보는 최고의 방법으로 이 분석을 것입니다.이 있는 경우에도 복사할 수 있습니다.