vim动态生成代码模板

时间:2017-07-25 13:19:48

标签: vim vim-macros

我必须编写包含重复代码的测试用例。

  1. 方法的名称应为使用_ ex:class_name_test
  2. 分隔的ClassName
  3. 对象名称应为classNameObj,mock方法应为ClassName.class
  4. genericObj.call语句适用于所有方法 sayHello应绑定到classNameObj,其余结果是通用的
  5. commonMethods适用于所有对象
  6. 我感兴趣的是使用Vim自动化它,而不是复制粘贴和更改ClassName和classNameObj。是否可以这样做,如果我传递类名,其余的应该生成?

    方法模板如下所述。

    @Test
    public void stop_video_request_valid_data() throws Throwable {
        ClassName classNameObj = mock(ClassName.class);
        when(genericObj.call()).thenReturn(new Object[]{classNameObj});
        when(classNameObj.sayHello()).thenReturn("Hello");
        commonMethods();
    }
    

1 个答案:

答案 0 :(得分:2)

片段就像类固醇上的内置{{1}}一样,通常带有参数插入,镜像和内部多个停止。第一个非常着名(并且仍然广泛使用)的Vim插件之一是snipMate(受 TextMate 编辑器的启发);不幸的是,它不再维持;虽然有a fork。现代替代方案(虽然需要Python)是UltiSnips。还有更多内容,请参阅this list on the Vim Tips Wiki

有三件事要评估:第一,摘录引擎本身的功能,第二,作者或其他人提供的片段的质量和广度;第三,添加新片段是多么容易。