github-copilot生成单元测试

打印 上一主题 下一主题

主题 958|帖子 958|积分 2874

我们为控制器或者工具类生成单元测试是非常有须要的,这可以很大程度上提升软件交付的质量,下面我使用github copilot来快速生成单元测试

  • 打开要生成单元测试的类,右键选择github copilot,选择generate tests,根据类来生成对它内部方法的单元测试

  • 新建单元测试文件,空缺文件,将右面github copilot chat中的代码插入到空缺文件即可

  • 我们可以检查一下生成的单元测试代码,主要是接口可用性的测试


  • @Mock使用场景

    • 创建模拟对象:当你需要模拟一个类的行为,而不想依赖于其真实实现时,可以使用 @Mock 注解。
    • 隔离测试:在举行单元测试时,使用 @Mock 可以制止对外部依赖(如数据库、网络等)的调用,从而使测试更加独立和快速。

  • @InjectMocks使用场景

    • 主动注入模拟对象:当你有一个需要依赖其他对象的类(例如服务类),并希望将 @Mock 创建的模拟对象主动注入到该类中时,可以使用 @InjectMocks。
    • 简化测试代码:通过使用 @InjectMocks,可以制止手动创建被测试对象,而且主动处理依赖关系,使测试代码更加简洁。

  1. class KnowledgeBaseControllerTest {
  2.     @Mock
  3.     private KnowledgeBaseService knowledgeBaseService;
  4.     @Mock
  5.     private ObjectMapper objectMapper;
  6.     @InjectMocks
  7.     private KnowledgeBaseController knowledgeBaseController;
  8.     @BeforeEach
  9.     void setUp() {
  10.         MockitoAnnotations.openMocks(this);
  11.     }
  12.     @Test
  13.     void findAllReturnsListOfKnowledgeBases() {
  14.         List<KnowledgeBase> knowledgeBases = Collections.singletonList(new KnowledgeBase());
  15.         when(knowledgeBaseService.findAll()).thenReturn(knowledgeBases);
  16.         List<KnowledgeBase> result = knowledgeBaseController.findAll();
  17.         assertEquals(knowledgeBases, result);
  18.     }
  19. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊落一身雪

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表