코드 냄새 52 - 깨지기 쉬운 테스트
요약: 비결정적 테스트를 작성하지 마세요.
문제
솔루션
결합: 유일한 소프트웨어 설계 문제
Maxi Contieri ・ 2021년 2월 6일 ・ 5분 읽기
#webdev
#programming
#oop
#tutorial
예
그럼에도 불구하고 그들은 개발자의 신뢰를 얻습니다.
우리는 그것들을 피해야 합니다.
샘플 코드
잘못된
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import components.set.Set;
import components.set.Set1L;
public abstract class SetTest {
protected abstract Set<String> constructor();
@Test
public final void testAddEmpty() {
Set<String> s = this.constructor();
s.add("green");
s.add("blue");
assertEquals("{green. blue}", s.toString());
//This is fragile since it dependes on set sort (which is not defined)
}
}
오른쪽
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import components.set.Set;
import components.set.Set1L;
public abstract class SetTest {
protected abstract Set<String> constructor();
@Test
public final void testAddEmpty() {
Set<String> s = this.constructor();
s.add("green");
assertEquals("{green}", s.toString());
}
@Test
public final void testEntryAtSingleEntry() {
Set<String> s = this.createFromArgs("red");
Boolean x = s.contains("red");
assertEquals(true, x);
}
}
발각
테스트 실행 통계를 통해 감지할 수 있습니다.
우리가 안전망을 제거하고 있기 때문에 유지 관리에 약간의 테스트를 하는 것은 매우 어렵습니다.
더 많은 정보
%[ https://softwareengineering.stackexchange.com/questions/109703/how-to-avoid-fragile-unit-tests ]
처지
Code Smell 76 - 일반 어설션
Maxi Contieri ・ 2021년 6월 7일 ・ 2분 읽기
#webdev
#testing
#testdev
#tutorial
태그
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import components.set.Set;
import components.set.Set1L;
public abstract class SetTest {
protected abstract Set<String> constructor();
@Test
public final void testAddEmpty() {
Set<String> s = this.constructor();
s.add("green");
s.add("blue");
assertEquals("{green. blue}", s.toString());
//This is fragile since it dependes on set sort (which is not defined)
}
}
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import components.set.Set;
import components.set.Set1L;
public abstract class SetTest {
protected abstract Set<String> constructor();
@Test
public final void testAddEmpty() {
Set<String> s = this.constructor();
s.add("green");
assertEquals("{green}", s.toString());
}
@Test
public final void testEntryAtSingleEntry() {
Set<String> s = this.createFromArgs("red");
Boolean x = s.contains("red");
assertEquals(true, x);
}
}
테스트 실행 통계를 통해 감지할 수 있습니다.
우리가 안전망을 제거하고 있기 때문에 유지 관리에 약간의 테스트를 하는 것은 매우 어렵습니다.
더 많은 정보
%[ https://softwareengineering.stackexchange.com/questions/109703/how-to-avoid-fragile-unit-tests ]
처지
Code Smell 76 - 일반 어설션
Maxi Contieri ・ 2021년 6월 7일 ・ 2분 읽기
#webdev
#testing
#testdev
#tutorial
태그
Code Smell 76 - 일반 어설션
Maxi Contieri ・ 2021년 6월 7일 ・ 2분 읽기
#webdev
#testing
#testdev
#tutorial
태그
결론
깨지기 쉬운 테스트는 시스템 결합을 보여주며 결정론적이거나 불규칙한 동작이 아닙니다.
개발자는 이러한 오탐지와 싸우기 위해 많은 시간과 노력을 기울입니다.
학점
사진 제공: Jilbert Ebrahimi on Unsplash
The amateur software engineer is always in search of magic.
그래디 부치
소프트웨어 엔지니어링 좋은 인용구
Maxi Contieri ・ 12월 28일 '20 ・ 13분 읽기
#codenewbie
#programming
#quotes
#software
이 기사는 CodeSmell 시리즈의 일부입니다.
코드에서 냄새 나는 부분을 찾는 방법
Maxi Contieri ・ 2021년 5월 21일 ・ 4분 읽기
#codenewbie
#tutorial
#codequality
#beginners
마지막 업데이트: 2021/06/12
Reference
이 문제에 관하여(코드 냄새 52 - 깨지기 쉬운 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mcsee/code-smell-52-fragile-tests-18o6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
사진 제공: Jilbert Ebrahimi on Unsplash
The amateur software engineer is always in search of magic.
그래디 부치
소프트웨어 엔지니어링 좋은 인용구
Maxi Contieri ・ 12월 28일 '20 ・ 13분 읽기
#codenewbie
#programming
#quotes
#software
이 기사는 CodeSmell 시리즈의 일부입니다.
코드에서 냄새 나는 부분을 찾는 방법
Maxi Contieri ・ 2021년 5월 21일 ・ 4분 읽기
#codenewbie
#tutorial
#codequality
#beginners
마지막 업데이트: 2021/06/12
Reference
이 문제에 관하여(코드 냄새 52 - 깨지기 쉬운 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mcsee/code-smell-52-fragile-tests-18o6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)