단위 테스트 생성
watsonx Code Assistant
채팅, 에디터의 CodeLens 또는 탐색기에서 다양한 프로그래밍 언어에 대한 단위 테스트를 생성할 수 있습니다.
다음 표에는 각 플랜에 대한 단위 테스트 유형이 나와 있습니다.
| 계획 | 단위 테스트 | 설명 |
|---|---|---|
| 평가판 요금제 에센셜 요금제 | 기본 | 생성적 AI를 사용하여 기본 단위 테스트를 제공합니다. 별도의 코드 분석이 필요하지 않습니다. |
| Standard 플랜 | 개선됨 | 빌트인 애플리케이션이 필요하며, 코드 분석과 생성적 AI를 사용하여 Java 메소드와 클래스에 대한 향상된 단위 테스트를 제공합니다. |
Eclipse IDE 전용: 멀티 모듈 Java 최적으로 활용하려면, 어그리게이터 모듈과 각 서브 모듈을 Eclipse 내에서 별도의 프로젝트로 가져오십시오. 최상위 디렉토리를 단일 프로젝트로 가져오면 Watsonx Code Assistant 프로젝트를 성공적으로 인트로스펙트할 가능성이 낮습니다.
언어 지원
테스트 생성은 다음 언어에 대해 사용할 수 있습니다:
- C
- C++
- Go
- Java
- JavaScript
- Python
- TypeScript
메서드를 참조하거나 메서드에서 CodeLens 을 사용하는 경우 watsonx Code Assistant 은 특정 코드 언어를 지원합니다. 전체 파일을 참조하는 것은 모든 언어에서 작동합니다. 자세한 내용은 메서드로 작업할 때 언어 지원을 참조하세요.
종속성
표준 플랜 Java 경우 ' pom.xml ' 파일에 다음 종속성이 포함되어 있는지 확인하세요:
- JUnit - 최소 JUnit 5가 필요합니다
- Mockito- 최소 Java 9가 필요합니다
다음 샘플 ' pom.xml ' 파일은 예제 버전과 함께 종속성을 보여줍니다. 파일에 사용 중인 종속성 및 버전을 포함하세요.
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.10.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.12.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>5.12.0</version>
<scope>test</scope>
</dependency>
</dependencies>
채팅 명령을 사용하여 단위 테스트 생성하기
채팅에서 ' /unit-test 명령을 사용하여 활성 워크스페이스에서 참조된 클래스, 파일, 함수 또는 메서드에 대한 테스트를 생성할 수 있습니다.
다음 구문을 사용하십시오.
/unit-test [using <test_framework>] <code reference> [similar to (<unit test reference>)] [additional instructions]
-
프롬프트는
/unit-test로 시작하고 나머지 구문을 입력해야 합니다. -
[using <test_framework>]선택 사항입니다. 프레임워크를 지정하지 않으면, watsonx Code Assistant 는 설정의 테스트 프레임워크를 사용합니다. -
'
<code reference>'의 경우 '@' 기호를 입력하면 작업 영역의 클래스, 파일, 함수 및 메서드 목록을 볼 수 있습니다. 한 번에 하나의 클래스, 파일, 함수 또는 메서드 참조를 사용합니다.파일을 참조할 때 크기 제한은 50KB입니다. 이 제한에 도달하면 파일을 개별 함수로 분할하고 각 함수를 참조하세요. 또는 49KB로 파일을 분할하여 함수 경계를 관리하고 분할할 때마다 파일을 참조하세요. 어느 방법을 사용하든 결과를 병합해야 합니다.
-
[similar to (<unit test reference>)]선택 사항입니다. 생성된 단위 테스트가 어떻게 보일지 예상되는 예를 제공하기 위해 사용합니다. 필요하다면, 언어 참조(similar to) 옵션에서 언어 참조를 사용할 수 있습니다. -
'
[additional instructions]'은 선택 사항입니다. 구체적인 세부 정보가 필요한 경우 지침을 추가합니다.
그런 다음 watsonx Code Assistant 요청을 처리하고 선택한 코드에 대해 생성된 단위 테스트를 채팅에 표시합니다.
-
에센셜 플랜 애플리케이션의 단위 테스트가 있는 파일에 단위 테스트를 복사합니다.
-
표준 계획 단위 테스트를 상위 디렉터리 구조의 파일에 복사
src/test/java. 예를 들어, 단위 테스트 파일을 '.../src/test/java/com/acme/modres/WCA_OrdersAlertFilter_Test.java에 복사합니다.
에디터에서 CodeLens 사용하여 단위 테스트 생성하기
IDE 에디터에서 CodeLens 코드 블록과 스니펫 앞에 생성 AI 옵션 줄을 표시합니다.
알려진 문제 watsonx Code Assistant for Enterprise Java Applications 확장자를 사용하는 경우, 시작 시 CodeLens 향상된 Java 기능을 사용할 수 있는 데 몇 초가 걸릴 수 있습니다.
-
단위 테스트를 생성하려면 코드 블록 바로 앞에 있는 단위 테스트 옵션을 클릭합니다.
다음 코드 예시에서는 '
Explain | Document | Unit Test' 옵션이 'protected void' 키워드 바로 앞에 있습니다.코드 렌즈 예제
watsonx Code Assistant 채팅 창이 열리고 '
/unit-test @<*item name*>명령이 표시되며, 명령이 실행되고 단위 테스트가 표시됩니다. -
에센셜 플랜 애플리케이션의 단위 테스트가 있는 파일에 단위 테스트를 복사합니다.
-
표준 계획 단위 테스트를 상위 디렉터리 구조의 파일에 복사
src/test/java. 예를 들어, 단위 테스트 파일을 '.../src/test/java/com/acme/modres/WCA_OrdersAlertFilter_Test.java에 복사합니다.
비활성화 CodeLens
CodeLens 옵션을 사용하지 않으려면 확장 프로그램 또는 플러그인의 설정을 변경하면 됩니다.
Visual Studio Code 에서 :
-
확장 프로그램의 설정을 엽니다.
-
Enable CodeLens설정을 지웁니다.
Eclipse 에서 :
-
Eclipse IDE 에 대한 설정을 엽니다.
-
watsonx Code Assistant 설정 항목에서
Enable CodeLens설정을 지웁니다. -
적용을 클릭하고 닫습니다.
탐색기를 사용하여 단위 테스트 생성하기
탐색기( Visual Studio Code ) 또는 프로젝트 탐색기( Eclipse )에서 단위 테스트를 생성합니다:
-
단위 테스트를 생성하려는 코드로 애플리케이션을 확장합니다.
-
코드를 마우스 오른쪽 버튼으로 클릭하고 watsonx Code Assistant 클릭한 다음 단위 테스트를 클릭합니다.
-
watsonx Code Assistant 채팅은 단위 테스트를 위해 선택한 코드에 대한 '
/unit-test' 명령을 표시합니다. 이 명령에는 다음 구문이 사용됩니다:/unit-test @<*item syntax*>다음 구문 예제는 파일, 클래스 및 메서드에 대한 것입니다.
- 파일: '
/unit-test @OrdersAlertFilter.java' - 클래스:
/unit-test @OrdersAlertFilter - 메소드:
/unit-test @DoFilter()
{{{site.data.keyword.wca_short_cap}} 요청을 처리하고 채팅에서 선택한 코드에 대해 생성된 단위 테스트를 표시합니다.
- 파일: '
-
에센셜 플랜 애플리케이션의 단위 테스트가 있는 파일에 단위 테스트를 복사합니다.
-
표준 계획 단위 테스트를 상위 디렉터리 구조의 파일에 복사
src/test/java. 예를 들어, 단위 테스트 파일을 '.../src/test/java/com/acme/modres/WCA_OrdersAlertFilter_Test.java에 복사합니다.
단위 테스트 수정
표준 계획 에서 생성한 테스트에 대한 단위 테스트 수정을 시작할 수 있습니다 watsonx Code Assistant. 단위 테스트 수정은 watsonx Code Assistant for Enterprise Java Applications Visual Studio Code 확장 또는 Eclipse 플러그인(버전 1.1.0 이상)에서만 사용할 수 있습니다.
온프레미스에서 IBM Software Hub 의 서비스로 watsonx Code Assistant 를 사용하는 경우 버전 5.2 이상이 필요합니다.
요구 사항:
- 단위 테스트 수정 기능은 watsonx Code Assistant 에서 생성한 테스트 중 접두사
WCA_로 시작하는 테스트에 사용할 수 있습니다. 생성된 테스트에서WCA_접두사를 제거하지 마세요. - 단위 테스트는 Java 프로젝트 또는 애플리케이션의
src/test/java폴더에 저장해야 합니다.
단위 테스트를 수정하려면
-
탐색기 보기를 엽니다.
-
테스트 폴더에서 기존 테스트 파일을 마우스 오른쪽 버튼으로 클릭하고 watsonx Code Assistant 을 클릭한 다음 단위 테스트 수정을 클릭합니다.
이 프로세스는 두 단계로 진행됩니다:
- 컴파일 수정 단계: 에디터에서 파일을 깔끔하게 컴파일된 코드로 업데이트합니다
- 런타임 수정 단계: 단위 테스트에서 런타임 오류를 확인합니다
프로세스 중에 오류가 발생하면 코드가 주석 처리됩니다. 예를 들어 컴파일 오류는 수정되었지만 결과 코드에 런타임 오류가 있는 경우입니다.
-
두 단계가 완료되면 단위 테스트 파일이 업데이트되고 실행할 수 있습니다.
다음 사항에 유의하십시오.
- 생성된 테스트 케이스에서 정규화된 클래스 이름 또는 정규화된 메서드가 있는 참조가 누락된 경우 단위 테스트 수정이 취소됩니다.
- 단위 테스트를 수정하려면 애플리케이션이 Java 버전 9 이상이어야 합니다.
- 단위 테스트를 수정하기 전에 애플리케이션을 분석해야 합니다.
- 테스트 생성 시 불필요하게 임포트된 클래스, 인터페이스 또는 패키지가 생성되는 경우가 있습니다. 임포트로 인해 컴파일 또는 런타임 오류가 발생하는 경우 주석 처리할 수 있습니다.