在Intellij中,如何创建一个为测试添加import语句的实时模板?

时间:2013-03-08 01:26:21

标签: java junit intellij-idea

我希望能够在类文件中键入test,然后按Tab键将其扩展为:

@Test
public void whenThen() {

}

还包括适当的进口。这包括import static junit.framework.Assert.*;

我该怎么做?我正在使用Intellij 12

2 个答案:

答案 0 :(得分:35)

您可以在IntelliJ 12中为test创建实时模板,如下所示:

档案>设置...>实时模板

Adding a template

  1. 添加新模板
  2. 设置缩写(您将使用此过滤器键入的内容)
  3. 输入此模板(按Tab键后,光标将在$ EXPR $处完成方法的名称,在这种情况下,$ END $是完成$ EXPR $后光标所在的位置名称(即按Enter键)

    @org.junit.Test
    public void test$EXPR$() {
        $END$
    }
    
  4. 确保Expand with设置为Tab(或您喜欢的任何一个)
  5. 确保启用缩短完全限定名称(模板中的@org.junit.Test方式将import org.junit.Test;添加到文件顶部,方法只有@Test
  6. 将Applicable设置为“in Java:d​​eclaration”。
  7. 编辑:正如tieTYT指出的那样,通过创建新的文件模板可以满足import static junit.framework.Assert.*部分:

    JUnit Test File Template

    #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
    
    import static junit.framework.Assert.*;
    
    #parse("File Header.java")
    public class ${NAME}
    {
    
    }
    

    以上内容只是从类模板中复制粘贴,添加了import语句。

答案 1 :(得分:0)

现在可以使用静态导入添加实时模板

您必须在“选项”中检查静态导入

@org.junit.Test
public void should$EXPR$when$CONDITION$() {
    org.junit.Assert.assertThat(null, org.hamcrest.CoreMatchers.is(org.hamcrest.CoreMatchers.nullValue())); 
}

enter image description here