赞
踩
实验 2 单元测试实验(共 2 学时)(作业提交时间2024.4.21日前)(自己琢磨的,可能有些地方不太全面,或者有问题,期待各位批评指正)
这里我的环境是intelliJ IDEA 2023.3.6
使用 JUnit 工具,针对 Spring Unit Testing 控制器代码中 ItemController 类进行测试,编 写对应的测试类以完成单元测试,最终提交测试代码。(下面是itemController.java文件内容)
- package com.sprint.unittesting.unittesting.controller;
-
- import java.util.List;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RestController;
-
- import
- com.sprint.unittesting.unittesting.business.ItemBusinessService;
- import com.sprint.unittesting.unittesting.model.Item;
-
- @RestController
- public class ItemController {
-
- @Autowired
- private ItemBusinessService businessService;
-
- @GetMapping("/dummy-item")
- public Item dummyItem() {
- return new Item(1, "Ball", 10, 100);
- }
-
- @GetMapping("/item-from-business-service")
- public Item itemFromBusinessService() {
- Item item = businessService.retreiveHardcodedItem();
-
- return item;
- }
-
- @GetMapping("/all-items-from-database")
- public List<Item> retrieveAllItems() {
- return businessService.retrieveAllItems();
- }
-
- }
实验步骤:
点击itemController类,Ctrl+shift+T创建。或者右键Goto--test创建。
之后会出现如下界面,选择要测试的方法,和destination package(即你要把测试代码文件放在哪个目录下面),点击OK,就创建好了测试类。
测试类里面只有基本的框架方法,内容需要自己填写。
2.填写测试代码
首先声明 ItemController 和 ItemBusinessService 的 Mock 对象以及 @BeforeEach 方法。
其次编写测试方法:
正常值
调用 itemController.dummyItem() 方法获取一个虚拟商品对象,并验证其属性是否与预期一致。
预期行为:商品名称应为 "Ball"。商品宽度应为 10。商品高度应为 100。
通过 assertEquals() 方法对实际返回的商品对象属性与预期值进行断言,以确保方法的行为符合预期。
使用 Mockito 模拟 itemBusinessService.retreiveHardcodedItem() 方法的行为,以返回一个模拟的商品对象。然后调用 itemController.itemFromBusinessService() 方法,验证其返回的商品对象是否与模拟对象相等。
使用 Mockito 模拟 itemBusinessService.retrieveAllItems() 方法的行为,以返回一组模拟的商品对象列表。然后调用 itemController.retrieveAllItems() 方法,验证其返回的商品对象列表是否与模拟列表相等。
最值/边界值/空值:
测试最值时,如果是手工创建,他会自动提示你超出范围,那么就测试边界值吧。
当传递空字符串作为参数时,Item对象是否能够正确地处理并将属性设置为空字符串。
3.测试
进行配置
选择自己版本的对应文件配置即可
然后点击运行即可,下面是运行结果。通过!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。