idea自动生成单元测试工具

idea自动生成单元测试工具

Squaretest插件(收费)

1.File------>Settings------>Plugins,搜索Squaretest,然后install就好了,插件安装完成后需要重启一下

2.打开class-右键--选择Generate--生成test

TestMe插件(免费)

TestMe插件可以智能分析被测试类的依赖类,结合Mockito+Junit等单元测试框架,生成Mock/InjectMocks依赖关系,自动生成单元测试类。

1.File------>Settings------>Plugins,搜索TestMe,然后install就好了,插件安装完成后需要重启一下。

2.打开class-右键--选择testme--生成test

启动springboot应用调用rest接口

  • 使用@SpringBootTest启动整个应用。
  • 使用@TestPropertySource来指定一个名为application-test.properties的配置文件,该文件应该位于classpath:下(即类路径根目录)。
  • 使用TestRestTemplate来发送一个POST请求到/home/update端点,并检查响应状态和数据。
  • 使用 @LocalServerPort注解用于注入Spring Boot应用随机启动的端口号。

测试中的URL字符串现在包含${port}占位符,它会被实际的端口号替换。

确保你的HomeController和其他相关组件(如User和ResponseResult类)正确配置并且能够被Spring Boot应用识别。如果问题仍然存在,检查是否有防火墙规则阻止了本地端口的连接,或者是否还有其他服务正在占用相同的端口。如果使用的是Docker容器或其他虚拟化环境,还需要检查网络设置是否允许容器内部的服务与宿主机进行通信。

java 复制代码
package com.zrj.tools.platform.controller;

import com.zrj.tools.platform.entity.ResponseResult;
import com.zrj.tools.platform.entity.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.TestPropertySource;

import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@TestPropertySource(locations = "classpath:application.properties")
class HomeControllerTest {

    @LocalServerPort
    private int port;

    @Autowired
    private TestRestTemplate restTemplate;

    @Test
    public void testUpdateEndpoint() {
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType( org.springframework.http.MediaType.APPLICATION_JSON );

        User user = new User();
        user.setName( "John Doe" );

        HttpEntity<User> entity = new HttpEntity<>( user, headers );
        ResponseEntity<ResponseResult<User>> response = restTemplate.exchange(
                "http://localhost:" + port + "/home/update", HttpMethod.POST, entity,
                new ParameterizedTypeReference<ResponseResult<User>>() {
                }
        );

        assertThat( response.getStatusCodeValue() ).isEqualTo( 200 );
        assertThat( response.getBody().getData() ).isEqualTo( user );
    }
}
相关推荐
青鱼入云6 小时前
IDEA源码阅读神器-Diagram工具
java·ide·intellij-idea
Lisonseekpan7 小时前
IntelliJ IDEA 快捷键全解析与高效使用指南
java·ide·后端·intellij-idea
q***23577 小时前
记录 idea 启动 tomcat 控制台输出乱码问题解决
java·tomcat·intellij-idea
深色風信子7 小时前
Java Maven Log4j 项目日志打印
java·log4j·maven·java maven
合作小小程序员小小店19 小时前
web网页开发,在线%考试管理%系统,基于Idea,vscode,html,css,vue,java,maven,springboot,mysql
java·前端·系统架构·vue·intellij-idea·springboot
精装机械师19 小时前
在IntelliJ IDEA编辑器中基于Gradle编译器搭建Kotlin开发环境遇到的各种坑
kotlin·gradle·intellij-idea
拽着尾巴的鱼儿19 小时前
idea AI编程 腾讯云代码助手 CodeBuddy插件安装和使用
intellij-idea·腾讯云·ai编程
多多*20 小时前
maven常用的命令
java·log4j·maven
合作小小程序员小小店1 天前
web网页开发,在线物流管理系统,基于Idea,html,css,jQuery,jsp,java,SSM,mysql
java·前端·后端·spring·intellij-idea·web
慧都小项1 天前
软件测试工具Parasoft C/C++test如何通过桩函数实现多次调用返回不同值
单元测试·parasoft·桩函数