java - 如何从 intellij 中的调试变量值生成模拟?

标签 java testing plugins groovy intellij-idea

有时我需要模拟很长时间才能在我的测试用例中写出 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/

相关文章:

android - 带键盘的 Chrome 开发工具设备未显示

java - Eclipse 代码推荐错误

javascript - 理解 jQuery $.extend() 的正确用法

java - 在总线上创建到安全消息传递引擎的连接时,Websphere 仍然抛出“未指定用户”

java - PrintWriter/PrintStream 是否需要刷新?

java - 在 fragment 之间滑动时如何显示进度?

.net - 在您的应用程序中实现插件的设计模式?

java - 验证 Android 互联网连接和错误

scala - 如何完成 Akka Flow 测试?

ASP.NET session 超时测试