github-copilot生成单元测试-牛翰网

github-copilot生成单元测试

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

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

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

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

  • @Mock使用场景
    • 创建模拟对象:当你需要模拟一个类的行为,而不想依赖于其真实实现时,可以使用 @Mock 注解。
    • 隔离测试:在进行单元测试时,使用 @Mock 可以避免对外部依赖(如数据库、网络等)的调用,从而使测试更加独立和快速。
  • @InjectMocks使用场景
    • 自动注入模拟对象:当你有一个需要依赖其他对象的类(例如服务类),并希望将 @Mock 创建的模拟对象自动注入到该类中时,可以使用 @InjectMocks。
    • 简化测试代码:通过使用 @InjectMocks,可以避免手动创建被测试对象,并且自动处理依赖关系,使测试代码更加简洁。
class KnowledgeBaseControllerTest {

    @Mock
    private KnowledgeBaseService knowledgeBaseService;

    @Mock
    private ObjectMapper objectMapper;

    @InjectMocks
    private KnowledgeBaseController knowledgeBaseController;

    @BeforeEach
    void setUp() {
        MockitoAnnotations.openMocks(this);
    }

    @Test
    void findAllReturnsListOfKnowledgeBases() {
        List<KnowledgeBase> knowledgeBases = Collections.singletonList(new KnowledgeBase());
        when(knowledgeBaseService.findAll()).thenReturn(knowledgeBases);

        List<KnowledgeBase> result = knowledgeBaseController.findAll();

        assertEquals(knowledgeBases, result);
    }
}

来源链接:https://www.cnblogs.com/lori/p/18789776

请登录后发表评论

    没有回复内容