有时我需要模拟很长时间才能在我的测试用例中写出 POJO。我想知道是否可以通过 Intellij (14) 中的调试变量数据生成模拟?
举个例子,我们有一个类:
public class MyClass{
private String aVariableWithARatherLongName1;
private Double aVariableWithARatherLongName2;
private String aVariableWithARatherLongName3;
private Long aVariableWithARatherLongName4;
private String aVariableWithARatherLongName5;
private Boolean aVariableWithARatherLongName6;
private String aVariableWithARatherLongName7;
private String aVariableWithARatherLongName8;
private String aVariableWithARatherLongName9;
private String aVariableWithARatherLongName10;
private String aVariableWithARatherLongName11;
private String aVariableWithARatherLongName12;
//getters & setters
}
在我的调试变量 View 中,我会有一个 MyClass
变量列表:
- myClasses = {ArrayList@0} size = 5
- 0 = {MyClass@1}
- aVariableWithARatherLongName1 = {String} "value 1"
- aVariableWithARatherLongName2 = {Double} 2.0
- aVariableWithARatherLongName3 = {String} "value 1"
...
- 1 = {MyClass@2}
- aVariableWithARatherLongName1 = {String} "value 2"
- aVariableWithARatherLongName2 = {Double} 2.0
- aVariableWithARatherLongName3 = {String} "value 2"
...
+ 2 = {MyClass@3}
+ 3 = {MyClass@4}
+ 4 = {MyClass@5}
然后插件或 Intellij 会根据所选语言(本例中为 Groovy)生成如下内容:
def mockedResults(){
[
new MyClass(aVariableWithARatherLongName1: 'value 1', aVariableWithARatherLongName2: 2.0, aVariableWithARatherLongName3: 'value 1', ...),
new MyClass(aVariableWithARatherLongName1: 'value 2', aVariableWithARatherLongName2: 2.0, aVariableWithARatherLongName3: 'value 2', ...),
new MyClass(aVariableWithARatherLongName1: 'value 3', aVariableWithARatherLongName2: 2.0, aVariableWithARatherLongName3: 'value 3', ...),
new MyClass(aVariableWithARatherLongName1: 'value 4', aVariableWithARatherLongName2: 2.0, aVariableWithARatherLongName3: 'value 4', ...),
new MyClass(aVariableWithARatherLongName1: 'value 5', aVariableWithARatherLongName2: 2.0, aVariableWithARatherLongName3: 'value 5', ...),
]
}
Intellij (14) 是否可以实现类似的功能,或者是否有提供此类功能的插件?
最佳答案
https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000422864-Generate-Code-from-Object-state-in-Debugger 上有一个功能请求 但是好像没有实现:(
来自 Parasoft 的付费软件“JTest”(看起来像是基于 eclipse 的)似乎能够根据被检查对象的值生成测试: https://docs.parasoft.com/display/JTEST1040/Tracking+Object+Changes+and+Creating+Assertions
生成模拟数据应该不会更难,但似乎也没有提供。也许您可以添加自己的模板。
关于java - 如何从 intellij 中的调试变量值生成模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30302321/