Disebabkan jadual tugas pembangunan yang padat dan antara muka yang tidak lengkap dan penyediaan data asas, walaupun kes ujian antara muka komprehensif direka, ujian liputan tidak dapat dijalankan sepenuhnya dan berkesan; kepada reka bentuk kes ujian antara muka tunggal Arah adalah parameter input dan parameter output Bermula dari parameter input ialah pengesahan parameter yang diperlukan, jenis parameter dan nilai sempadan parameter, dan kemudian gabungan parameter input Sebagai contoh, antara muka mempunyai 5 parameter , 3 diperlukan, dan 2 Ia tidak diperlukan Jenis data termasuk rentetan, int, dsb., dan terdapat juga sekatan panjang aksara Jadi apabila mereka bentuk kes ujian antara muka tunggal, akan ada, um... juga banyak untuk dikira Jika bilangan parameter input dan Apabila jenis parameter meningkat, bilangannya menjadi tidak terkata Oleh itu, adalah perlu untuk mempertimbangkan penguasaan kaedah reka bentuk kes ujian antara muka.
1 Parameter jenis angka
Pembahagian kelas kesetaraan: dalam julat nilai, di luar julat nilai, ini Cara memahami. ?
Jika dokumen antara muka menerangkan nilai atau julat yang perlu diambil oleh parameter ini, cuma pilih dalam dan luar julat yang dinyatakan di sini
Analisis nilai sempadan: maksimum dan minimum adalah tepat, maksimum +1, minimum -1 , Ini adalah untuk mencari sempadan daripada julat nilai, dengan maksimum dan minimum ialah sempadan jenis data
Reka bentuk nilai khas: 0 atau nombor bukan positif, perpuluhan boleh direka
Traversal: tiada pintasan, habiskan julat nilai, ini secara amnya ialah Kelas kesetaraan dan nilai sempadan ditapis keluar dan tidak perlu dihabiskan; julat di dalam dan di luar
Jenis khusus: Cina dan Inggeris, saiz Tulis, Cina Ringkas dan Tradisional
Aksara khas: emotikon emoji, simbol tanda baca, aksara khas lain bagi kaedah input
3. Tatasusunan jarang atau jenis senarai terpaut : seperti jenis senarai, yang mungkin int[] Ia boleh menjadi rentetan[], dan kaedah reka bentuknya tidak boleh lari daripada yang di atas, jadi saya tidak akan menerangkan butiran di sini.
Mereka bentuk untuk logik perniagaan, mereka bentuk untuk parameter output, dsb., terutamanya logik perniagaan secara amnya menggunakan reka bentuk kes penggunaan hadapan, dan sejumlah kecil senario tidak normal direka bentuk melalui parameter input Reka bentuk parameter output hampir selalu termasuk dalam reka bentuk parameter input boleh mendapatkan hasil yang diinginkan.
Kembali kepada perniagaan!
<!-- 首先创建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)
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan ujian unit SpringBoot+TestNG. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!