단위 테스트를 읽을 수 있도록 Sensei 및 AssertJ

게시일: 12월 01, 2021
by 션 플래니건
사례 연구

단위 테스트를 읽을 수 있도록 Sensei 및 AssertJ

게시일: 12월 01, 2021
by 션 플래니건
리소스 보기
리소스 보기

개발자는 다양한 방법으로 자체 코드를 만들고 테스트합니다. 이러한 방법 중 하나는 단위 테스트입니다 - 자신의 코드의 가장 작은 부분을 테스트하는 매우 인기있는 방법. 단위 테스트를 잘 작성하면 코드 품질을 개선하고 비용과 개발 시간을 줄이는 데 도움이 될 수 있습니다. 테스트 기반 개발(TDD)의 일부로 수행되든 그렇지 않든, 단위 테스트는 현대 개발 관행의 핵심 부분이며 그 중요성은 많은 테스트 프레임워크를 만드는 데 이어졌습니다.

그러나 적절한 테스트 프레임워크와 지침이 없는 경우 초점이 품질과 가독성이 아닌 커버리지와 수량으로 전환함에 따라 단위 테스트가 복잡하고 읽을 수 없게 될 수 있습니다. 이는 많은 단위 테스트를 갖춘 크고 활성 코드베이스에서 특히 그렇습니다.

좋은 테스트 프레임워크는 간단하고 품질 테스트에 중점을 둔 읽기 쉬운 좋은 테스트를 만드는 데 도움이 됩니다. 또한 코드를 사용하는 방법도 문서화하는 데 도움이 됩니다. 이러한 프레임워크 중 하나는 AssertJ입니다.

AssertJ는 Java에서 단위 테스트를 작성하기 위한 유창한 API입니다. 컨텍스트 인식 자동 완성과 함께 영어처럼 읽는 테스트 어설션을 작성할 수 있습니다. 많은 수의 테스트가 있고 가독성을 개선해야 하는 경우 모든 테스트를 AssertJ로 마이그레이션하고 향후 모든 테스트가 AssertJ를 최대한 활용하고 있는지 확인할 수 있습니다.

그러나 완전한 마이그레이션은 수동으로 수행하는 데 엄청난 노력과 시간이 걸릴 수 있으므로 다른 개발 작업에 대해 건너 뛰거나 연기되는 경우가 많습니다. 그래서 우리는 만들었습니다. Sensei - AssertJ를 사용하기 위해 현재 단위 테스트를 마이그레이션하고 모든 미래의 테스트를 올바른 방법으로 작성할 수 있도록 하는 매우 사용자 정의 가능한 IntelliJ 플러그인. 이것은 이미 당신을 위해 만든 조리법 (규칙)의 숫자로 이루어집니다 Sensei'개발 팀. Sensei 일회성 마이그레이션을 수행하거나 한 번에 한 번 테스트하는 AssertJ로 증분 마이그레이션을 수행하는 방법을 쉽게 수행할 수 있습니다. AssertJ로 이동하면 개발자가 단위 테스트를 작성할 때 개발자가 단위 테스트를 작성할 때 빠른 수정 사항을 적용하는 데 계속 도움이 되므로 전체 코드베이스에서 단위 테스트가 균일하고 표준적이며 일관성이 유지됩니다.

AssertJ를 설정하는 방법에 대한 비디오에는 크기 규칙이 있습니다.

약 Sensei

Sensei 수백 개의 다운로드 가능한 코드 변환 및 마이그레이션 레시피(규칙)와 직접 제작할 수 있는 내장 된 기능으로 입력할 때 바람직하지 않은 코드를 스캔하고 수정할 수 있는 매우 사용자 정의 가능한 IntelliJ 플러그인입니다. 와 Sensei개발자는 잘못된 코드 패턴을 입력할 때 품질 코드를 더 빠르게 제공할 수 있도록 수정하고 궁극적으로 팀과 프로젝트 전반에 걸쳐 일관되고 표준적인 방식으로 작성할 수 있습니다.

다음은 샘플 마이그레이션의 예입니다. Sensei AssertJ를 사용하기 위해 단위 테스트를 마이그레이션하는 것이 고통스없이 만듭니다.

AssertJ가 단위 테스트를 작성하는 데 큰 프레임워크인 이유

이 JUnit 어설션과 같은 테스트를 작성하는 대신 다음과 같습니다.

AssertJ로 이 글을 쓸 수 있습니다.

즉, 영어 문장처럼 왼쪽에서 오른쪽으로 주장을 읽을 수 있으며, 어떤 것이 기대인지 분명합니다(이 경우 크기 3). 이런 식으로 몇 번이나 주장을 잘못된 방법으로 작성했습니까?

이것은 단지 간단한 예입니다. 검사와 어설션이 복잡할수록 AssertJ가 더 많아서 테스트를 간단하고 읽을 수 있습니다. IDE의 자동 완성과 잘 어울린다. 입력하자마자 다음을 수행합니다.

myResult의 유형에 따라 확인할 수 있는 모든 것들로 나타납니다. 컬렉션인 경우 특정 값이나 형식이 포함되어 있는지 여부 등 해당 내용, 크기를 확인할 수 있습니다.

밖으로 나온 AssertJ는 기본 및 박스형, 원자 유형, 컬렉션, 배열, 지도, 날짜, java.time, 선물, 파일/경로, 입력스트림, Throwable및 URL을 지원합니다. 그리고 당신은 Hamcrest에 대한 좋아하는 사용자 정의 매치러가있는 경우, 당신은 HamcrestCondition를 통해 AssertJ와 함께 사용할 수 있습니다.

읽기 쉬운 단위 테스트를 통해 개발자는 일반 영어로 코드를 쉽게 읽을 수 있으므로 실수를 쉽게 발견하고 커버리지를 늘릴 수 있으므로 AssertJ는 좋은 Java 단위 테스트를 위한 필수 프레임워크가 됩니다.

레거시 단위 테스트를 AssertJ로 이동하는 레시피

AssertJ와 일관된 코드를 작성하는 데 도움이 되는 쿡북을 작성했습니다. JUnit 3, JUnit 4, JUnit 5 및 FEST-Assert와 같은 이러한 프레임워크에서 AssertJ로 어설션을 마이그레이션하는 데 도움이 될 수 있습니다.

이 쿡북은 Sensei 즉시 사용및 당신은에 대한 설치 지침을 찾을 수 있습니다 Sensei 여기.

코드로 더 나은 단위 테스트를 작성 - JUnit 품질을 점진적으로 개선

Sensei AssertJ용 쿡북은 다른 프레임워크에서 마이그레이션하는 데 도움이 되지 않습니다. 그것은 당신이 당신의 테스트 쓰기를 개선하는 데 도움이 될 수있는 몇 가지 조리법이 있다, 오래된 습관을 깰, 더 특색 AssertJ 테스트를 작성.

예를 들어 다음과 같은 테스트를 작성했다고 가정해 보겠습니다.

아마도 당신은 이 JUnit 스타일의 어설션에서 위의 마이그레이션 레시피 중 하나를 사용하여 마이그레이션할 수도 있습니다.

Sensei AssertJ용 쿡북에는 이 오래된 어설션 스타일을 감지하고 이를 변환할 수 있는 레시피 가 있습니다.

또 다른 레시피 는 다음을 변환할 수 있습니다.

이에 대해 다음과 같은 작업을 수행합니다.

팀 간 일회성 마이그레이션 및 균일한 코딩 관행- Sensei

위의 예제에서 AssertJ를 사용하는 단위 테스트의 수동 마이그레이션에는 더 나은 테스트를 작성하는 데 가장 많은 노력과 시간이 포함될 수 있습니다. 사용 하 여 Sensei단위 테스트를 AssertJ로 쉽게 마이그레이션할 수 있습니다. 일회성 마이그레이션을 수행하거나 개별 테스트를 AssertJ로 마이그레이션할 수 있습니다. Sensei 이러한 유형의 유연성을 제공하여 코드 마이그레이션을 덜 고통스럽게 만듭니다.

단위 테스트 마이그레이션은 여러 가지 방법의 한 예에 불과합니다. Sensei 프로젝트 간에 일관된 코드를 작성하는 데 사용할 수 있습니다. 항상 풀 요청에서 자주 발생하거나 자신을 코딩할 때 자주 발생하는 패턴 방지 또는 특정 수동 코드 변환을 경계할 수 있습니다. 개발자가 자주 놓친 코딩 지침 집합이 있는 경우 가이드라인을 레시피로 변환하여 개발자가 승인된 코드 변환을 자신있게 적용할 수 있습니다.

질문이 있으시면, 저희는 여러분으로부터 듣고 싶습니다! 슬랙에 우리와 함께 : sensei-scw.slack.com

리소스 보기
리소스 보기

저자

숀 플래니건

더 알고 싶으신가요?

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

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

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

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

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

리소스 허브

단위 테스트를 읽을 수 있도록 Sensei 및 AssertJ

게시일: 12월 01, 2021
By 션 플래니건

개발자는 다양한 방법으로 자체 코드를 만들고 테스트합니다. 이러한 방법 중 하나는 단위 테스트입니다 - 자신의 코드의 가장 작은 부분을 테스트하는 매우 인기있는 방법. 단위 테스트를 잘 작성하면 코드 품질을 개선하고 비용과 개발 시간을 줄이는 데 도움이 될 수 있습니다. 테스트 기반 개발(TDD)의 일부로 수행되든 그렇지 않든, 단위 테스트는 현대 개발 관행의 핵심 부분이며 그 중요성은 많은 테스트 프레임워크를 만드는 데 이어졌습니다.

그러나 적절한 테스트 프레임워크와 지침이 없는 경우 초점이 품질과 가독성이 아닌 커버리지와 수량으로 전환함에 따라 단위 테스트가 복잡하고 읽을 수 없게 될 수 있습니다. 이는 많은 단위 테스트를 갖춘 크고 활성 코드베이스에서 특히 그렇습니다.

좋은 테스트 프레임워크는 간단하고 품질 테스트에 중점을 둔 읽기 쉬운 좋은 테스트를 만드는 데 도움이 됩니다. 또한 코드를 사용하는 방법도 문서화하는 데 도움이 됩니다. 이러한 프레임워크 중 하나는 AssertJ입니다.

AssertJ는 Java에서 단위 테스트를 작성하기 위한 유창한 API입니다. 컨텍스트 인식 자동 완성과 함께 영어처럼 읽는 테스트 어설션을 작성할 수 있습니다. 많은 수의 테스트가 있고 가독성을 개선해야 하는 경우 모든 테스트를 AssertJ로 마이그레이션하고 향후 모든 테스트가 AssertJ를 최대한 활용하고 있는지 확인할 수 있습니다.

그러나 완전한 마이그레이션은 수동으로 수행하는 데 엄청난 노력과 시간이 걸릴 수 있으므로 다른 개발 작업에 대해 건너 뛰거나 연기되는 경우가 많습니다. 그래서 우리는 만들었습니다. Sensei - AssertJ를 사용하기 위해 현재 단위 테스트를 마이그레이션하고 모든 미래의 테스트를 올바른 방법으로 작성할 수 있도록 하는 매우 사용자 정의 가능한 IntelliJ 플러그인. 이것은 이미 당신을 위해 만든 조리법 (규칙)의 숫자로 이루어집니다 Sensei'개발 팀. Sensei 일회성 마이그레이션을 수행하거나 한 번에 한 번 테스트하는 AssertJ로 증분 마이그레이션을 수행하는 방법을 쉽게 수행할 수 있습니다. AssertJ로 이동하면 개발자가 단위 테스트를 작성할 때 개발자가 단위 테스트를 작성할 때 빠른 수정 사항을 적용하는 데 계속 도움이 되므로 전체 코드베이스에서 단위 테스트가 균일하고 표준적이며 일관성이 유지됩니다.

AssertJ를 설정하는 방법에 대한 비디오에는 크기 규칙이 있습니다.

약 Sensei

Sensei 수백 개의 다운로드 가능한 코드 변환 및 마이그레이션 레시피(규칙)와 직접 제작할 수 있는 내장 된 기능으로 입력할 때 바람직하지 않은 코드를 스캔하고 수정할 수 있는 매우 사용자 정의 가능한 IntelliJ 플러그인입니다. 와 Sensei개발자는 잘못된 코드 패턴을 입력할 때 품질 코드를 더 빠르게 제공할 수 있도록 수정하고 궁극적으로 팀과 프로젝트 전반에 걸쳐 일관되고 표준적인 방식으로 작성할 수 있습니다.

다음은 샘플 마이그레이션의 예입니다. Sensei AssertJ를 사용하기 위해 단위 테스트를 마이그레이션하는 것이 고통스없이 만듭니다.

AssertJ가 단위 테스트를 작성하는 데 큰 프레임워크인 이유

이 JUnit 어설션과 같은 테스트를 작성하는 대신 다음과 같습니다.

AssertJ로 이 글을 쓸 수 있습니다.

즉, 영어 문장처럼 왼쪽에서 오른쪽으로 주장을 읽을 수 있으며, 어떤 것이 기대인지 분명합니다(이 경우 크기 3). 이런 식으로 몇 번이나 주장을 잘못된 방법으로 작성했습니까?

이것은 단지 간단한 예입니다. 검사와 어설션이 복잡할수록 AssertJ가 더 많아서 테스트를 간단하고 읽을 수 있습니다. IDE의 자동 완성과 잘 어울린다. 입력하자마자 다음을 수행합니다.

myResult의 유형에 따라 확인할 수 있는 모든 것들로 나타납니다. 컬렉션인 경우 특정 값이나 형식이 포함되어 있는지 여부 등 해당 내용, 크기를 확인할 수 있습니다.

밖으로 나온 AssertJ는 기본 및 박스형, 원자 유형, 컬렉션, 배열, 지도, 날짜, java.time, 선물, 파일/경로, 입력스트림, Throwable및 URL을 지원합니다. 그리고 당신은 Hamcrest에 대한 좋아하는 사용자 정의 매치러가있는 경우, 당신은 HamcrestCondition를 통해 AssertJ와 함께 사용할 수 있습니다.

읽기 쉬운 단위 테스트를 통해 개발자는 일반 영어로 코드를 쉽게 읽을 수 있으므로 실수를 쉽게 발견하고 커버리지를 늘릴 수 있으므로 AssertJ는 좋은 Java 단위 테스트를 위한 필수 프레임워크가 됩니다.

레거시 단위 테스트를 AssertJ로 이동하는 레시피

AssertJ와 일관된 코드를 작성하는 데 도움이 되는 쿡북을 작성했습니다. JUnit 3, JUnit 4, JUnit 5 및 FEST-Assert와 같은 이러한 프레임워크에서 AssertJ로 어설션을 마이그레이션하는 데 도움이 될 수 있습니다.

이 쿡북은 Sensei 즉시 사용및 당신은에 대한 설치 지침을 찾을 수 있습니다 Sensei 여기.

코드로 더 나은 단위 테스트를 작성 - JUnit 품질을 점진적으로 개선

Sensei AssertJ용 쿡북은 다른 프레임워크에서 마이그레이션하는 데 도움이 되지 않습니다. 그것은 당신이 당신의 테스트 쓰기를 개선하는 데 도움이 될 수있는 몇 가지 조리법이 있다, 오래된 습관을 깰, 더 특색 AssertJ 테스트를 작성.

예를 들어 다음과 같은 테스트를 작성했다고 가정해 보겠습니다.

아마도 당신은 이 JUnit 스타일의 어설션에서 위의 마이그레이션 레시피 중 하나를 사용하여 마이그레이션할 수도 있습니다.

Sensei AssertJ용 쿡북에는 이 오래된 어설션 스타일을 감지하고 이를 변환할 수 있는 레시피 가 있습니다.

또 다른 레시피 는 다음을 변환할 수 있습니다.

이에 대해 다음과 같은 작업을 수행합니다.

팀 간 일회성 마이그레이션 및 균일한 코딩 관행- Sensei

위의 예제에서 AssertJ를 사용하는 단위 테스트의 수동 마이그레이션에는 더 나은 테스트를 작성하는 데 가장 많은 노력과 시간이 포함될 수 있습니다. 사용 하 여 Sensei단위 테스트를 AssertJ로 쉽게 마이그레이션할 수 있습니다. 일회성 마이그레이션을 수행하거나 개별 테스트를 AssertJ로 마이그레이션할 수 있습니다. Sensei 이러한 유형의 유연성을 제공하여 코드 마이그레이션을 덜 고통스럽게 만듭니다.

단위 테스트 마이그레이션은 여러 가지 방법의 한 예에 불과합니다. Sensei 프로젝트 간에 일관된 코드를 작성하는 데 사용할 수 있습니다. 항상 풀 요청에서 자주 발생하거나 자신을 코딩할 때 자주 발생하는 패턴 방지 또는 특정 수동 코드 변환을 경계할 수 있습니다. 개발자가 자주 놓친 코딩 지침 집합이 있는 경우 가이드라인을 레시피로 변환하여 개발자가 승인된 코드 변환을 자신있게 적용할 수 있습니다.

질문이 있으시면, 저희는 여러분으로부터 듣고 싶습니다! 슬랙에 우리와 함께 : sensei-scw.slack.com

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

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