【问题标题】:In Intellij, how do I create a live template that adds import statements for tests?在 Intellij 中,如何创建一个为测试添加导入语句的实时模板?
【发布时间】:2013-03-08 01:26:20
【问题描述】:
我希望能够在类文件中键入test,然后按 Tab 键并将其扩展为:
@Test
public void whenThen() {
}
并且还包括适当的导入。这包括import static junit.framework.Assert.*;。
我该怎么做?我正在使用 Intellij 12
【问题讨论】:
标签:
java
junit
intellij-idea
【解决方案1】:
您可以像这样在 IntelliJ 12 中为 test 创建一个实时模板:
文件 > 设置... > 实时模板
- 添加新模板
- 设置缩写(您将键入的内容以使用此过滤器)
-
键入此模板(按 Tab 后,您的光标将位于 $EXPR$ 以完成方法名称,在这种情况下,$END$ 是完成 $EXPR$ 名称后光标所在的位置(即, 按回车键)
@org.junit.Test
public void test$EXPR$() {
$END$
}
- 确保将展开方式设置为 Tab(或您喜欢的任何一种)
- 确保启用缩短全限定名称(这样模板中的
@org.junit.Test 会将 import org.junit.Test; 添加到文件顶部,并且该方法将只有 @Test)
- 将 Applicable 设置为“in Java: declaration”。
编辑:正如 tieTYT 指出的,import static junit.framework.Assert.* 部分可以通过创建一个新的文件模板来满足:
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
import static junit.framework.Assert.*;
#parse("File Header.java")
public class ${NAME}
{
}
以上只是从 Class 模板复制粘贴,添加了import 语句。
【解决方案2】:
现在可以使用静态导入添加实时模板:
您必须在选项中检查静态导入
@org.junit.Test
public void should$EXPR$when$CONDITION$() {
org.junit.Assert.assertThat(null, org.hamcrest.CoreMatchers.is(org.hamcrest.CoreMatchers.nullValue()));
}