빡빡한 개발 일정과 불완전한 인터페이스 및 기본 데이터로 인해 포괄적인 인터페이스 테스트 케이스를 설계하더라도 완전하고 효과적인 커버리지 테스트가 불가능하며 단일 인터페이스 테스트 케이스의 방향이 다르기 때문에; 설계는 입력 매개변수와 출력 매개변수이며 입력 매개변수에서 시작하여 필수 매개변수 확인, 매개변수 유형 및 매개변수 경계값이 있으며 입력 매개변수의 조합이 있습니다. 예를 들어 인터페이스에는 5개의 매개변수, 3개의 필수 매개변수, 2개의 선택 매개변수가 있습니다. 데이터 유형은 string, int 등이고 문자 길이 제한도 있으므로 이러한 단일 인터페이스 테스트 케이스의 수는 음... 입력 매개변수와 매개변수의 수가 너무 많아서 계산할 수 없습니다. 유형이 증가하면 이 숫자는 말로 표현할 수 없으므로 테스터의 인터페이스 테스트 케이스 설계 방법 숙달을 고려해야 합니다.
1. 숫자형 매개변수
동등 클래스 구분: 값 범위 내, 값 범위 외부
이 매개변수가 무엇인지 설명하는 경우 선택할 값 또는 범위는 여기에 지정된 범위 내부와 외부 중에서 선택하면 됩니다
경계값 분석: 최대값과 최소값이 딱 맞고, 최대값은 +1, 최소값은 -1입니다. 최대값과 최소값이 데이터 유형 경계인 값 범위
특수 값 설계: 0 또는 양수가 아닌 숫자, 소수가 설계될 수 있음
순회: 지름길 없음, 값 범위 소진, 이는 일반적으로 동등 클래스에 의해 필터링되고
2. 문자열 유형
문자열 길이
동등 클래스: 값 범위 내부 및 외부
경계 값: 지정된 범위 경계; 특수 값: 이를 구별해야 합니다. 문자열 유형의 특수 문자 중에서 여기서는 0 또는 빈 문자열, null을 나타냅니다.
문자열 내용
특정 유형: 중국어 및 영어, 대문자 및 소문자, 중국어 간체 및 번체
특수 문자: 이모티콘, 구두점 기호, 기타 특수 문자 입력 방법
<!-- 首先创建springboot框架的maven项目pom添加如下依赖,ide可以安装插件:spring assistant,一键创建springboot框架的maven项目 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.0</version><!-- 2.3.0.RELEASE版本可选 --> <relativePath/> <!-- lookup parent from repository --> </parent> <!-- springboot框架的主要依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.4.0</version> </dependency>
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> <optional>true</optional> </dependency>
<!-- 顺带提一下的另一个做代码覆盖率检测的插件 --> <dependency> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> <version>2.7</version> </dependency> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.3</version> <configuration> <!--指定生成 .exec 文件的存放位置 --> <destFile>target/coverage-reports/jacoco-unit.exec</destFile> <!--Jacoco 是根据 .exec 文件生成最终的报告,所以需指定 .exec 的存放路径 --> <dataFile>target/coverage-reports/jacoco-unit.exec</dataFile> </configuration> <executions> <execution> <id>jacoco-initialize</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>jacoco-site</id> <phase>package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> <!-- tips:jacoco在maven中执行的命令是:mvn clean jacoco:prepare-agent install jacoco:report -Dmaven.test.failure.ignore=true -->
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.testng/testng --> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.9.10</version> </dependency> <!-- 右键选择Coverage as 执行框架即可,运行完在指定目录或当前控制台查看覆盖率 -->
# junit4.x是如下使用: import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest @RunWith(SpringRunner.class) public class BaseTest { } # 而换成testng就是如下使用: import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; @SpringBootTest public class BaseTest extends AbstractTestNGSpringContextTests { } # 同样是使用@SpringBootTest注解,但是它启动sprintboot服务不一样,testng必须继承AbstractTestNGSpringContextTests使用; # 扩展:还可以是继承AbstractTransactionalTestNGSpringContextTests类,二选一; # @SpringBootTest(classes={是你的SpringBoot启动app类}),例如:@SpringBootTest(classes=UserApplication.class)
7. 확장: Swagger 종속성을 추가하고 인터페이스 문서를 생성합니다. Lombok 종속성은 선언된 필드의 getter 및 setter 메서드를 지원하고 로그 로그와 같은 도구도 통합합니다.
package com.text; import xxx.xxx.xxx public TestSampler extends BaseTest{ @BeforeClass void bf(){ // 测试写测试的前置条件,那些只需要执行一次的数据 } @Test void test_add(){ // 这里写需要测试的代码 } // 。。。 }
위 내용은 SpringBoot+TestNG 단위 테스트 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!