JUnit 5에 대한 방법 및 클래스 가시성 수정

게시일: 2020년 12월 21일
by 앨런 리처드슨
사례 연구

JUnit 5에 대한 방법 및 클래스 가시성 수정

게시일: 2020년 12월 21일
by 앨런 리처드슨
리소스 보기
리소스 보기

JUnit 5에 대한 방법 및 클래스 가시성 수정

프로그래밍의 즐거움 중 하나는 최신 상태를 유지하는 데 필요한 지속적인 학습입니다. 문제 중 하나는 새로운 접근 방식의 채택에 영향을 미칠 수 있는 친숙함과 사용 패턴을 구축한다는 것입니다. Sensei 사용되지 않도록 하고 앞으로 사용할 수정 사항을 표시하여 마이그레이션을 도울 수 있습니다.

예를 들어 JUnit 4에서 JUnit 5로 마이그레이션할 때 모든 테스트 클래스와 메서드를 공개적으로 작성하는 데 사용되었습니다. 그러나 JUnit 5를 사용하면 비공개로 패키지가 될 수 있습니다.

예를 들어 다음 대신

public class Junit5VisibilityTest {
    @Test
    public void thisDoesNotNeedToBePublic(){
        Assertions.assertTrue(true);
    }
}


나는 정말로 쓰고 싶다:

class Junit5VisibilityTest {
    @Test
    void thisDoesNotNeedToBePublic(){
        Assertions.assertTrue(true);
    }
}


그것은 이것에 코딩하는 근육 메모리를 구축하는 데 시간이 걸렸고, 나는 여전히 가끔 미끄러졌다.

사용 Sensei

와 Sensei 공개 방법과 클래스를 찾는 레시피를 만들고 선언을 자동으로 비공개로 수정할 수 있습니다.

이를 위해 레시피를 만들었습니다.

이름 - JUnit: JUnit 5 테스트 메서드는 공개할 필요가 없습니다.
설명 - JUnit 5 테스트 방법은 공개 가시성이 필요하지 않습니다.
레벨 - 오류


이 코딩 연습을 스탬프하고 IDE에서 코드를 작성할 때 문제를 더 높은 가시성을 원하기 때문에 오류로 분류했습니다.

계급 선언 수정

수업을 찾기 위해, 나는 Junit 5 즉, org.junit.jupiter.api.Test에서 @Test 아이 의 부가가있는 클래스를 검색합니다.

그리고 클래스에 수정자 공개가있는 경우 :

검색:
수업:
와:
아이:
주석:
유형: "org.junit.jupiter.api.Test"
수정자: "공개"

그런 다음 빠른 수정 프로그램이 수정자를 변경하여 가시성을 제거하여 기본값이 되도록 변경하고 기본값은 내가 찾고 있는 패키지 비공개입니다.

사용 가능한 픽스:
- 이름 : "JUnit 5 테스트 클래스에서 공개 가시성을 제거"
작업:
- 체인지수정자:
가시성: ""



방법 선언 수정

메서드 선언 개정 레시피는 클래스 레시피와 거의 동일합니다.

먼저 JUnit 5의 @Test 인하여 추가된 공개 방법을 검색합니다.

검색:
메서드:
주석:
유형: "org.junit.jupiter.api.Test"
수정자: "공개"


그런 다음 수정자를 기본 가시성으로 변경합니다.

사용 가능한 픽스:
- 이름 : "@Test 방법 공개 가시성 제거"
작업:
- 체인지수정자:
가시성: ""


힌트: 여러 가지 방법 수정

Sensei 현재 파일의 모든 위반에 QuickFix를 적용할 수 있습니다.

alt+enter를 사용하여 QuickFix를 적용할 때.

QuickFix 이름 메뉴를 확장하면 다음 옵션을 볼 수 있습니다.

"모두 해결: 'JUnit: JUnit 5 테스트 메서드는 공개될 필요가 없습니다' 파일의 문제"

그런 다음 해당 옵션을 선택하면 Sensei 내가 선택한 것뿐만 아니라 문제의 모든 발생을 수정합니다.


테스트 방법 공개 가시성 제거

수업 수정

메서드가 공개될 필요가 없는 것과 마찬가지로 클래스도 마찬가지입니다.

클래스를 수정하기 위해 레시피와 QuckFix를 만들 수 있습니다.

이름 - JUnit: 주니 5 테스트 클래스는 공개될 필요가 없습니다.
설명 - 주니 5 테스트 클래스는 공개 할 필요가 없습니다
레벨 - 오류


나는 공공 의 클래스를 찾을 때 @Test 성서와 방법이 있습니다. 그런 다음 가시성을 변경하고 싶습니다.

검색:
수업:
수정자: "공개"
그 중:
- 어린이 :
메서드:
주석:
유형: "테스트"


변경수정자 동작으로 클래스 정의를 다시 변경할 수 있습니다.

사용 가능한 픽스:
- 이름 : "@Test 클래스 공공 가시성 제거"
작업:
- 체인지수정자:
가시성: ""


요약

정적 분석 도구는 처음에 JUnit에서 이 권장 접근 방식을 경고했습니다. 그러나 정적 분석 도구는 내가 프로그램으로 내 코드를 변경하는 근육 메모리를 구축하는 데 도움이되지 않았다.

'레벨'을 사용하여 경고합니다. 문제가 될 때 나는 처음에 '오류'를 만들고 코딩 접근 방식에서 자신을 짜내면서 이것을 줄이려고합니다.

사용할 수 있는 기억 Sensei QuickFix를 적용할 때 드롭다운 메뉴 옵션을 사용하여 현재 파일의 모든 문제를 동시에 해결합니다.

Sensei 레시피, 나는 실시간으로 내 오래된 코딩 접근 방식을 볼 수 있습니다. 그리고 QuickFix, 내가 가끔 내 코딩에 미끄러 경우 접근 방식을 강화하기 위해.

---

설치할 수 있습니다. Sensei "환경 설정 \ 플러그인"(맥) 또는 "설정 \ 플러그인"(윈도우)를 사용하여 IntelliJ 내에서 다음 그냥 검색 " sensei 보안 코드".

소스 코드와 이에 대한 조리법은 ' sensei -블로그 예제의 리포지토리는 Secure Code Warrior GitHub 계정, '주니예제' 모듈에서.



리소스 보기
리소스 보기

저자

앨런 리처드슨

더 알고 싶으신가요?

블로그에서 최신 보안 코딩 인사이트에 대해 자세히 알아보세요.

Atlassian의 광범위한 리소스 라이브러리는 안전한 코딩 숙련도를 확보하기 위한 인적 접근 방식을 강화하는 것을 목표로 합니다.

블로그 보기
더 알고 싶으신가요?

개발자 중심 보안에 대한 최신 연구 보기

광범위한 리소스 라이브러리에는 개발자 중심의 보안 코딩을 시작하는 데 도움이 되는 백서부터 웨비나까지 유용한 리소스가 가득합니다. 지금 살펴보세요.

리소스 허브

JUnit 5에 대한 방법 및 클래스 가시성 수정

게시일: 2020년 12월 21일
By 앨런 리처드슨

JUnit 5에 대한 방법 및 클래스 가시성 수정

프로그래밍의 즐거움 중 하나는 최신 상태를 유지하는 데 필요한 지속적인 학습입니다. 문제 중 하나는 새로운 접근 방식의 채택에 영향을 미칠 수 있는 친숙함과 사용 패턴을 구축한다는 것입니다. Sensei 사용되지 않도록 하고 앞으로 사용할 수정 사항을 표시하여 마이그레이션을 도울 수 있습니다.

예를 들어 JUnit 4에서 JUnit 5로 마이그레이션할 때 모든 테스트 클래스와 메서드를 공개적으로 작성하는 데 사용되었습니다. 그러나 JUnit 5를 사용하면 비공개로 패키지가 될 수 있습니다.

예를 들어 다음 대신

public class Junit5VisibilityTest {
    @Test
    public void thisDoesNotNeedToBePublic(){
        Assertions.assertTrue(true);
    }
}


나는 정말로 쓰고 싶다:

class Junit5VisibilityTest {
    @Test
    void thisDoesNotNeedToBePublic(){
        Assertions.assertTrue(true);
    }
}


그것은 이것에 코딩하는 근육 메모리를 구축하는 데 시간이 걸렸고, 나는 여전히 가끔 미끄러졌다.

사용 Sensei

와 Sensei 공개 방법과 클래스를 찾는 레시피를 만들고 선언을 자동으로 비공개로 수정할 수 있습니다.

이를 위해 레시피를 만들었습니다.

이름 - JUnit: JUnit 5 테스트 메서드는 공개할 필요가 없습니다.
설명 - JUnit 5 테스트 방법은 공개 가시성이 필요하지 않습니다.
레벨 - 오류


이 코딩 연습을 스탬프하고 IDE에서 코드를 작성할 때 문제를 더 높은 가시성을 원하기 때문에 오류로 분류했습니다.

계급 선언 수정

수업을 찾기 위해, 나는 Junit 5 즉, org.junit.jupiter.api.Test에서 @Test 아이 의 부가가있는 클래스를 검색합니다.

그리고 클래스에 수정자 공개가있는 경우 :

검색:
수업:
와:
아이:
주석:
유형: "org.junit.jupiter.api.Test"
수정자: "공개"

그런 다음 빠른 수정 프로그램이 수정자를 변경하여 가시성을 제거하여 기본값이 되도록 변경하고 기본값은 내가 찾고 있는 패키지 비공개입니다.

사용 가능한 픽스:
- 이름 : "JUnit 5 테스트 클래스에서 공개 가시성을 제거"
작업:
- 체인지수정자:
가시성: ""



방법 선언 수정

메서드 선언 개정 레시피는 클래스 레시피와 거의 동일합니다.

먼저 JUnit 5의 @Test 인하여 추가된 공개 방법을 검색합니다.

검색:
메서드:
주석:
유형: "org.junit.jupiter.api.Test"
수정자: "공개"


그런 다음 수정자를 기본 가시성으로 변경합니다.

사용 가능한 픽스:
- 이름 : "@Test 방법 공개 가시성 제거"
작업:
- 체인지수정자:
가시성: ""


힌트: 여러 가지 방법 수정

Sensei 현재 파일의 모든 위반에 QuickFix를 적용할 수 있습니다.

alt+enter를 사용하여 QuickFix를 적용할 때.

QuickFix 이름 메뉴를 확장하면 다음 옵션을 볼 수 있습니다.

"모두 해결: 'JUnit: JUnit 5 테스트 메서드는 공개될 필요가 없습니다' 파일의 문제"

그런 다음 해당 옵션을 선택하면 Sensei 내가 선택한 것뿐만 아니라 문제의 모든 발생을 수정합니다.


테스트 방법 공개 가시성 제거

수업 수정

메서드가 공개될 필요가 없는 것과 마찬가지로 클래스도 마찬가지입니다.

클래스를 수정하기 위해 레시피와 QuckFix를 만들 수 있습니다.

이름 - JUnit: 주니 5 테스트 클래스는 공개될 필요가 없습니다.
설명 - 주니 5 테스트 클래스는 공개 할 필요가 없습니다
레벨 - 오류


나는 공공 의 클래스를 찾을 때 @Test 성서와 방법이 있습니다. 그런 다음 가시성을 변경하고 싶습니다.

검색:
수업:
수정자: "공개"
그 중:
- 어린이 :
메서드:
주석:
유형: "테스트"


변경수정자 동작으로 클래스 정의를 다시 변경할 수 있습니다.

사용 가능한 픽스:
- 이름 : "@Test 클래스 공공 가시성 제거"
작업:
- 체인지수정자:
가시성: ""


요약

정적 분석 도구는 처음에 JUnit에서 이 권장 접근 방식을 경고했습니다. 그러나 정적 분석 도구는 내가 프로그램으로 내 코드를 변경하는 근육 메모리를 구축하는 데 도움이되지 않았다.

'레벨'을 사용하여 경고합니다. 문제가 될 때 나는 처음에 '오류'를 만들고 코딩 접근 방식에서 자신을 짜내면서 이것을 줄이려고합니다.

사용할 수 있는 기억 Sensei QuickFix를 적용할 때 드롭다운 메뉴 옵션을 사용하여 현재 파일의 모든 문제를 동시에 해결합니다.

Sensei 레시피, 나는 실시간으로 내 오래된 코딩 접근 방식을 볼 수 있습니다. 그리고 QuickFix, 내가 가끔 내 코딩에 미끄러 경우 접근 방식을 강화하기 위해.

---

설치할 수 있습니다. Sensei "환경 설정 \ 플러그인"(맥) 또는 "설정 \ 플러그인"(윈도우)를 사용하여 IntelliJ 내에서 다음 그냥 검색 " sensei 보안 코드".

소스 코드와 이에 대한 조리법은 ' sensei -블로그 예제의 리포지토리는 Secure Code Warrior GitHub 계정, '주니예제' 모듈에서.



우리는 당신에게 우리의 제품 및 / 또는 관련 보안 코딩 주제에 대한 정보를 보낼 수있는 귀하의 허가를 바랍니다. 우리는 항상 최대한의주의를 기울여 귀하의 개인 정보를 취급 할 것이며 마케팅 목적으로 다른 회사에 판매하지 않을 것입니다.

전송
양식을 제출하려면 '분석' 쿠키를 활성화하세요. 완료되면 언제든지 다시 비활성화할 수 있습니다.