使用CodeArts 编码智能助手生成单元测试用例
CodeArts 编码智能助手支持自动分析代码,找出适合进行单元测试的部分,并生成测试用例,帮助开发人员快速验证代码的正确性和稳定性。这些测试用例可以覆盖正常情况、异常情况和边界情况,帮助开发人员验证代码,保证代码在各种情况下都能够正确运行。CodeArts 编码智能助手支持生成Java、C、C++、Python、JavaScript等语言测试用例,示例以Java语言为例。
约束与限制
- CodeArts 编码智能助手生成的单元代码可能包含未引入的框架或包,需要手动引入。
- 不支持对abstract、private、main、constructor、toString、getter、setter、empty方法生成单元测试用例。
为方法生成单元测试用例
以Java语言以及CodeArts 编码智能助手生成的冒泡排序代码作为示例介绍生成测试用例。
- 安装并登录CodeArts 编码智能助手插件。
- 在编辑器选中通过CodeArts 编码智能助手生成的冒泡排序方法。
public static void bubbleSort(int[] array) { for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < array.length - 1 - i; j++) { if (array[j] > array[j + 1]) { int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } }
- 选中代码生成单元测试,可通过以下两种方式。
- 方式一:单击右键,选择菜单“CodeArts 编码智能助手 > 单元测试”。
- 方式二:在研发问答窗口输入“/”,在弹出的菜单中选择“/tests”,单击
或使用“Enter”快捷键发送。
插件在回答过程中输入框禁止发送问题。
- 弹出“生成单元测试”对话框,选择“测试框架”和“Mock框架”,单击“确认”。
- 测试框架:包括Junit4,Junit5。
- Mock框架:目前仅支持Mockito。
图1 生成单元测试 - CodeArts 编码智能助手将会在研发问答窗口输出测试用例代码及代码解释内容,开发者可以将生成的测试用例代码另存为文件后运行。
图2 生成的单元测试用例
为类生成单元测试用例
- 安装并登录CodeArts 编码智能助手插件。
- 在编辑器中代码类任意空白处,单击右键,选择菜单“CodeArts 编码智能助手 > 单元测试”。
- 弹出“生成单元测试”对话框,根据需要选择以下内容。
- 测试框架 :包括Junit4,Junit5。
- Mock框架:目前仅支持Mockito。
- Mock静态方法:是否启用模拟静态方法。
- 测试数据增强: 是否增强边界数据。
- 断言框架:选择断言方式。
- 选择待测方法 :选择生成测试用例方法。
- 选择Mock对象:根据实际情况选择Mock对象。
图3 生成单元测试
- 单击“确认”,CodeArts 编码智能助手将会根据表单内容,生成单元测试用例文件。
批量生成单元测试用例
- 安装并登录CodeArts 编码智能助手插件。
- 开启目录级单元测试用例生成。
- 打开IDE,单击左上角菜单栏 ,进入IDE设置界面。
- 在设置界面左侧菜单选择“CodeArts 编码智能助手 > 单元测试生成”,勾选“开启目录级单元测试用例生成”。
- 找到项目中需要批量生成测试用例的文件夹,单击右键,选择菜单“CodeArts 编码智能助手 > 单元测试”。
- 弹出“生成单元测试”对话框,根据需要选择对应内容。
图4 批量生成单元测试用例
- 单击“确认”,CodeArts 编码智能助手将会根据表单内容,批量生成单元测试用例文件。
修复测试用例
- 安装并登录CodeArts 编码智能助手插件。
- 在编辑器打开一个测试文件,在文件空白地方单击右键,选择菜单“CodeArts 编码智能助手 > 测试用例修复(Beta)”。
- CodeArts 编码智能助手将会在研发问答窗口中给出修复后测试用例。
图5 修复测试用例
相关操作
操作项 |
说明 |
---|---|
复制代码 |
单击回答框右上角 |
插入代码 |
单击回答框右上角 |
保存代码 |
单击回答框右上角 |
重新回答 |
如对当前回答不满意,可单击回答框右下角 |
复制回答 |
单击回答框右下角 |
评价回答 |
单击回答框右下角 |
投诉举报 |
单击回答框右下角 |
分享 |
单击回答框右下角 |
新建对话 |
单击研发问答窗口右上角 |
对话历史 |
单击研发问答窗口右上角
|
MCP服务器 |
单击研发问答窗口右上角
说明:
仅JetBrains系列IDE支持该功能。 |