当前位置:   article > 正文

山东大学2024软件测试技术实验二单元测试_使用junit工具,针对spring unit testing控制器代码中itemcontrolle

使用junit工具,针对spring unit testing控制器代码中itemcontroller类进行测试,编

实验 2   单元测试实验(共 2 学时)(作业提交时间2024.4.21日前)(自己琢磨的,可能有些地方不太全面,或者有问题,期待各位批评指正)

这里我的环境是intelliJ IDEA 2023.3.6

使用 JUnit 工具,针对 Spring Unit Testing 控制器代码中 ItemController 类进行测试,编 写对应的测试类以完成单元测试,最终提交测试代码。(下面是itemController.java文件内容)

  1. package com.sprint.unittesting.unittesting.controller;
  2. import java.util.List;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6. import
  7. com.sprint.unittesting.unittesting.business.ItemBusinessService;
  8. import com.sprint.unittesting.unittesting.model.Item;
  9. @RestController
  10. public class ItemController {
  11. @Autowired
  12. private ItemBusinessService businessService;
  13. @GetMapping("/dummy-item")
  14. public Item dummyItem() {
  15. return new Item(1, "Ball", 10, 100);
  16. }
  17. @GetMapping("/item-from-business-service")
  18. public Item itemFromBusinessService() {
  19. Item item = businessService.retreiveHardcodedItem();
  20. return item;
  21. }
  22. @GetMapping("/all-items-from-database")
  23. public List<Item> retrieveAllItems() {
  24. return businessService.retrieveAllItems();
  25. }
  26. }

实验步骤:

  1. 创建itemControllerTest类

点击itemController类,Ctrl+shift+T创建。或者右键Goto--test创建。

之后会出现如下界面,选择要测试的方法,和destination package(即你要把测试代码文件放在哪个目录下面),点击OK,就创建好了测试类。

测试类里面只有基本的框架方法,内容需要自己填写。

2.填写测试代码

首先声明 ItemController 和 ItemBusinessService 的 Mock 对象以及 @BeforeEach 方法。

  • @InjectMocks 注解表示要将模拟对象注入到被测试的 ItemController 类中。
  • @Mock 注解用于创建 ItemBusinessService 的模拟对象。
  • @BeforeEach 注解用于在每个测试方法执行之前初始化模拟对象。

其次编写测试方法:

正常值

  • dummyItem() 测试方法用于测试 dummyItem() 方法的行为。

调用 itemController.dummyItem() 方法获取一个虚拟商品对象,并验证其属性是否与预期一致。

预期行为:商品名称应为 "Ball"。商品宽度应为 10。商品高度应为 100。

通过 assertEquals() 方法对实际返回的商品对象属性与预期值进行断言,以确保方法的行为符合预期。

  • itemFromBusinessService() 测试方法用于测试 itemFromBusinessService() 方法的行为。

使用 Mockito 模拟 itemBusinessService.retreiveHardcodedItem() 方法的行为,以返回一个模拟的商品对象。然后调用 itemController.itemFromBusinessService() 方法,验证其返回的商品对象是否与模拟对象相等。

  • retrieveAllItems() 测试方法用于测试 retrieveAllItems() 方法的行为。

使用 Mockito 模拟 itemBusinessService.retrieveAllItems() 方法的行为,以返回一组模拟的商品对象列表。然后调用 itemController.retrieveAllItems() 方法,验证其返回的商品对象列表是否与模拟列表相等。

最值/边界值/空值:

  • dummyItemBoundaryValues()测试边界值。

测试最值时,如果是手工创建,他会自动提示你超出范围,那么就测试边界值吧。

  • dummyItemNULL()检查空字符串

当传递空字符串作为参数时,Item对象是否能够正确地处理并将属性设置为空字符串。

  • retrieveAllItemsNUll() 检查空列表

3.测试

进行配置

选择自己版本的对应文件配置即可

然后点击运行即可,下面是运行结果。通过!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/575614
推荐阅读
相关标签
  

闽ICP备14008679号