随着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.使用
鼠标右击显示本插件所有的功能
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给出的测试用例
测试用例:
- 测试上传空文件,期望返回错误信息。
- 测试上传非Excel格式的文件,期望返回错误信息。
- 测试上传Excel文件,但文件内容不符合要求(如没有手机号列),期望返回错误信息。
- 测试上传正确格式的包含手机号的Excel文件,期望返回成功信息。
- 测试上传重复手机号的Excel文件,期望返回部分成功信息,告知有多少号码导入成功/失败,以及导入失败的具体原因。
- 测试同时上传多个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());
下面是给出的问题和方法
问题:
- 第4行代码中,response.addHeader()方法参数缺失"+"号,导致编译错误。
- 第5行代码中,response.setContentType()方法中缺少charset的设置,可能导致乱码。
优化方案:
- 在第4行代码中,添加"+"号,连接字符串。
- 在第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真的让程序员要起飞了。
想学习更多扫码了解
版权归原作者 ChatGPT掘金 所有, 如有侵权,请联系我们删除。