好用的IntelliJ IDEA ChatGPT插件:NexChatGPT

随着ChatGPT的爆火,ChatGPT给我们的生产生活带来一定的影响,ChatGPT相关的工具插件潮水般的涌现。ChatGPT对IT的影响也不小,尤其是自动化编程,今天介绍几款IntelliJ IDEA中ChatGPT插件。

一、NexChatGPT

NexChatGPT是一款开箱即用的IntelliJ IDEA插件。即使你没有OpenAI账号也可以使用。
基于SSE(Server send event)技术,你可以很快的收到回答。在搜索框输入你的问题,然后点击send按钮或回车键,你可以很快接收到答案。

特点:免费无需账号,开箱即用

1.预览

2.安装

打开IntelliJ IDEA左上角File->settings->Plugins 搜索框搜NexChatGPT,点击install安装。

安装完成后,在 IDE 窗口的右侧可以看到插件入口。

微信扫码登录即可使用。

3.功能特征

  • ChatGPT正常功能使用
  • 变身机器人聊天
  • 解释代码
  • 给代码加注释
  • 生成测试用例
  • 生成单元测试用例
  • 代码优化

4.使用

鼠标右击显示本插件所有的功能

扫描二维码关注公众号,回复: 15507546 查看本文章
1. ChatGPT正常功能使用

2.变身机器人聊天

3.解释代码

解释圈起来的代码

		response.reset();
		response.setHeader("Content-Disposition", "attachment; filename=\"audio.zip\"");
		response.addHeader("Content-Length", "" + data.length);
		response.setContentType("application/octet-stream; charset=UTF-8");
		IOUtils.write(data, response.getOutputStream());

截图是给出上面代码的解释,比较准确的,省去了我们去百度。

4.帮我把每一行代码加上注释

response.reset();
		response.setHeader("Content-Disposition", "attachment; filename=\"audio.zip\"");
		response.addHeader("Content-Length", "" + data.length);
		response.setContentType("application/octet-stream; charset=UTF-8");
		IOUtils.write(data, response.getOutputStream());

上图是给出的代码注释

//  重置响应
response.reset();

//  设置响应头,指定文件名
response.setHeader("Content-Disposition",  "attachment;  filename=\"audio.zip\"");

//  添加响应头,指定文件大小
response.addHeader("Content-Length",  ""  +  data.length);

//  设置响应类型,以便让浏览器识别文件类型为数据流
response.setContentType("application/octet-stream;  charset=UTF-8");

//  将数据写入响应输出流
IOUtils.write(data,  response.getOutputStream());
5.帮我生成测试用例

我计划生成一个手机号批量导入的方法

下图是ChatGPT给出的测试用例

测试用例:

  1. 测试上传空文件,期望返回错误信息。
  2. 测试上传非Excel格式的文件,期望返回错误信息。
  3. 测试上传Excel文件,但文件内容不符合要求(如没有手机号列),期望返回错误信息。
  4. 测试上传正确格式的包含手机号的Excel文件,期望返回成功信息。
  5. 测试上传重复手机号的Excel文件,期望返回部分成功信息,告知有多少号码导入成功/失败,以及导入失败的具体原因。
  6. 测试同时上传多个Excel文件,期望返回错误信息。
6.帮我生成单元测试用例

import org.junit.Assert;
import org.junit.Test;
import org.springframework.mock.web.MockMultipartFile;
import java.io.IOException;
import static org.mockito.Mockito.*;

public class AudioControllerTest {

    private AudioService audioService = mock(AudioService.class);
    private AudioController audioController = new AudioController(audioService);

    @Test
    public void testImportPhoneNo() throws IOException {
        // 假设要导入的文件名为 test.txt,内容为 1234567890
        String fileName = "test.txt";
        String content = "1234567890";
        MockMultipartFile file = new MockMultipartFile(fileName, fileName,
                "text/plain", content.getBytes());

        // 假设导入手机号码成功
        when(audioService.importPhoneNo(file)).thenReturn("success");

        // 调用接口进行测试
        R result = audioController.importPhoneNo(file);

        // 验证结果是否正确
        Assert.assertEquals(R.ok(), result);

        // 验证是否调用了对应的方法
        verify(audioService, times(1)).importPhoneNo(file);
    }
}

单纯的看代码内容以及上下文是没什么问题的,但是,如果使用还的结合实际的业务代码做调整。

7.帮我生成单元测试用例

byte[] data = sysGeneratorService.generatorCode(tables.split(","));
		

		response.reset();
		response.setHeader("Content-Disposition", "attachment; filename=\"audio.zip\"");
		response.addHeader("Content-Length", "" + data.length);
		response.setContentType("application/octet-stream; charset=UTF-8");
		IOUtils.write(data, response.getOutputStream());


下面是给出的问题和方法

问题:

  1. 第4行代码中,response.addHeader()方法参数缺失"+"号,导致编译错误。
  2. 第5行代码中,response.setContentType()方法中缺少charset的设置,可能导致乱码。

优化方案:

  1. 在第4行代码中,添加"+"号,连接字符串。
  2. 在第5行代码中,添加charset=UTF-8。

给出优化的代码

//生成代码
byte[]  data  =  sysGeneratorService.generatorCode(tables.split(","));

//设置response头信息
response.reset();
response.setHeader("Content-Disposition",  "attachment;  filename=\"audio.zip\"");
response.setHeader("Content-Length",  ""  +  data.length);
response.setContentType("application/octet-stream;  charset=UTF-8");

//将文件写入response输出流
IOUtils.write(data,  response.getOutputStream());

NexChatGPT所有的功能基本都给大家看了一遍了,IntelliJ IDEA+ChatGPT真的让程序员要起飞了。

想学习更多扫码了解
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_62587287/article/details/130531869