저는 다양한 방법으로 엔티티를 생성하고 작동하는 서비스에 대한 JUnit 테스트를 작성하고 있습니다. 나는 여러 가지 조합의 활동을 시도하기 위해 시험을 원한다. 나는 이런 일이 :이 JUnit 테스트 세트를 작성하는 "올바른"방법은 무엇입니까?
test1() {
/** create entity **/
/** assert **/
}
test2() {
/** do X to entity **/
/** assert **/
}
test3() {
/** do X again to entity, expect failure **/
/** assert **/
}
test4() {
/** do Y to entity, expect success **/
/** assert **/
}
그러나, 나의 이해는 내가 JUnit을 올바른 순서로 테스트를 실행 기대할 수 없습니다입니다, 각 테스트는 완전히 자체 포함되어야한다고. 내가 포함 된 모든 테스트 자체를 할 경우
, 그때 중복 코드를 많이 예를 들어 ... 상황이 다소 긴 실행하고 유지하는 것이 더 어렵다, 거기 :
test1() {
/** create entity **/
/** assert **/
}
test2() {
/** create entity **/
/** do X to entity **/
/** assert **/
}
test3() {
/** create entity **/
/** do X to entity **/
/** do X again to entity, expect failure **/
/** assert **/
}
test4() {
/** create entity **/
/** do X to entity **/
/** do X again to entity, expect failure **/
/** do Y to entity, expect success **/
/** assert **/
}
... 당신이 경우 따라와.
내 질문은 코드가 깨끗하고 우아하도록이 테스트를 작성하는 "올바른"방법은 무엇일까요? 당신은 개체를 초기화 @Before
주석이 방법을 사용할 수 있습니다
감사합니다, 롭
오류가 발생한 위치를 문서화하는 데 더 많은 주장이있는 test4() {...} 만있는 옵션 3을 제안 할 수 있습니다. – Sam
@sam 확실히 하나의 JUnit 테스트에서 여러 개의 어설 션을 제안하지 않으십니까? 옳은? 심지어 http://junit.sourceforge.net/doc/faq/faq.htm#tests_12는 테스트 당 하나의 주장을 제안합니다. –
나는 그것을 제안하고 있습니다. :) 나는 로버트 흄이 테스트하고있는 그 권고가 도움이된다고 생각하지 않는다. 일련의 이벤트 또는 특정 사용 시나리오를 테스트하기 위해 다른 테스트 프레임 워크를 사용해야한다고 말할 수 있습니다. 테스트 케이스 내에서 주문을 유지 관리하는 테스트 러너를 만들 수도 있지만, 다른 FAQ를 위반하게됩니다. 그래도 좋은 생각. – Sam