隨著ChatGPT的爆火,ChatGPT給我們的生產(chǎn)生活帶來(lái)一定的影響,ChatGPT相關(guān)的工具插件潮水般的涌現(xiàn)。ChatGPT對(duì)IT的影響也不小,尤其是自動(dòng)化編程,今天介紹幾款I(lǐng)ntelliJ IDEA中ChatGPT插件。
一、NexChatGPT
NexChatGPT是一款開(kāi)箱即用的IntelliJ IDEA插件。即使你沒(méi)有OpenAI賬號(hào)也可以使用。
基于SSE(Server send event)技術(shù),你可以很快的收到回答。在搜索框輸入你的問(wèn)題,然后點(diǎn)擊send按鈕或回車(chē)鍵,你可以很快接收到答案。
特點(diǎn):免費(fèi)無(wú)需賬號(hào),開(kāi)箱即用
1.預(yù)覽
2.安裝
打開(kāi)IntelliJ IDEA左上角File->settings->Plugins 搜索框搜NexChatGPT,點(diǎn)擊install安裝。
安裝完成后,在 IDE 窗口的右側(cè)可以看到插件入口。
微信掃碼登錄即可使用。
3.功能特征
- ChatGPT正常功能使用
- 變身機(jī)器人聊天
- 解釋代碼
- 給代碼加注釋
- 生成測(cè)試用例
- 生成單元測(cè)試用例
- 代碼優(yōu)化
4.使用
鼠標(biāo)右擊顯示本插件所有的功能
1. ChatGPT正常功能使用
2.變身機(jī)器人聊天
3.解釋代碼
解釋圈起來(lái)的代碼
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());
截圖是給出上面代碼的解釋?zhuān)容^準(zhǔn)確的,省去了我們?nèi)グ俣取?/p>
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());
上圖是給出的代碼注釋
// 重置響應(yīng)
response.reset();
// 設(shè)置響應(yīng)頭,指定文件名
response.setHeader("Content-Disposition", "attachment; filename=\"audio.zip\"");
// 添加響應(yīng)頭,指定文件大小
response.addHeader("Content-Length", "" + data.length);
// 設(shè)置響應(yīng)類(lèi)型,以便讓瀏覽器識(shí)別文件類(lèi)型為數(shù)據(jù)流
response.setContentType("application/octet-stream; charset=UTF-8");
// 將數(shù)據(jù)寫(xiě)入響應(yīng)輸出流
IOUtils.write(data, response.getOutputStream());
5.幫我生成測(cè)試用例
我計(jì)劃生成一個(gè)手機(jī)號(hào)批量導(dǎo)入的方法
下圖是ChatGPT給出的測(cè)試用例
測(cè)試用例:
- 測(cè)試上傳空文件,期望返回錯(cuò)誤信息。
- 測(cè)試上傳非Excel格式的文件,期望返回錯(cuò)誤信息。
- 測(cè)試上傳Excel文件,但文件內(nèi)容不符合要求(如沒(méi)有手機(jī)號(hào)列),期望返回錯(cuò)誤信息。
- 測(cè)試上傳正確格式的包含手機(jī)號(hào)的Excel文件,期望返回成功信息。
- 測(cè)試上傳重復(fù)手機(jī)號(hào)的Excel文件,期望返回部分成功信息,告知有多少號(hào)碼導(dǎo)入成功/失敗,以及導(dǎo)入失敗的具體原因。
- 測(cè)試同時(shí)上傳多個(gè)Excel文件,期望返回錯(cuò)誤信息。
6.幫我生成單元測(cè)試用例
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 {
// 假設(shè)要導(dǎo)入的文件名為 test.txt,內(nèi)容為 1234567890
String fileName = "test.txt";
String content = "1234567890";
MockMultipartFile file = new MockMultipartFile(fileName, fileName,
"text/plain", content.getBytes());
// 假設(shè)導(dǎo)入手機(jī)號(hào)碼成功
when(audioService.importPhoneNo(file)).thenReturn("success");
// 調(diào)用接口進(jìn)行測(cè)試
R result = audioController.importPhoneNo(file);
// 驗(yàn)證結(jié)果是否正確
Assert.assertEquals(R.ok(), result);
// 驗(yàn)證是否調(diào)用了對(duì)應(yīng)的方法
verify(audioService, times(1)).importPhoneNo(file);
}
}
單純的看代碼內(nèi)容以及上下文是沒(méi)什么問(wèn)題的,但是,如果使用還的結(jié)合實(shí)際的業(yè)務(wù)代碼做調(diào)整。
7.幫我生成單元測(cè)試用例
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());
下面是給出的問(wèn)題和方法
問(wèn)題:
- 第4行代碼中,response.addHeader()方法參數(shù)缺失"+"號(hào),導(dǎo)致編譯錯(cuò)誤。
- 第5行代碼中,response.setContentType()方法中缺少charset的設(shè)置,可能導(dǎo)致亂碼。
優(yōu)化方案:
- 在第4行代碼中,添加"+"號(hào),連接字符串。
- 在第5行代碼中,添加charset=UTF-8。
給出優(yōu)化的代碼
//生成代碼
byte[] data = sysGeneratorService.generatorCode(tables.split(","));
//設(shè)置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");
//將文件寫(xiě)入response輸出流
IOUtils.write(data, response.getOutputStream());
NexChatGPT所有的功能基本都給大家看了一遍了,IntelliJ IDEA+ChatGPT真的讓程序員要起飛了。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-470854.html
想學(xué)習(xí)更多掃碼了解
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-470854.html
到了這里,關(guān)于好用的IntelliJ IDEA ChatGPT插件:NexChatGPT的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!