我需要将以下Eclipse模板移植到IntelliJ IDEA
/**
* See method name.
*/
@${testType:newType(org.junit.Test)}
public void should${testdesc}() {
// given ${cursor}
${staticImport:importStatic('org.hamcrest.Matchers.*', 'org.junit.Assert.*', 'org.mockito.BDDMockito.*')}
// when
// then
}
我到目前为止所做的是
/**
* See method name.
*/
@org.junit.Test
public void should$EXPR$() {
// given $END$
${staticImport:importStatic('org.hamcrest.Matchers.*', 'org.junit.Assert.*', 'org.mockito.BDDMockito.*')}
// when
// then
}
然后勾选Shorten FQ names
标志。
${staticImport:importStatic()}
表达式的IDEA等价物是什么?
答案 0 :(得分:6)
您不能只在实时模板中导入静态导入。 (您可以使用文件模板,请参阅下文)。但是你可以在模板中使用方法。您只需完全限定课程,然后选择"缩短FQ名称"和#34;如果可能,使用静态导入"选项。例如,以下内容:
org.junit.Assert.assertEquals("$END$", $EXPECTED$, $ACTUAL$);
将导致:
import static org.junit.Assert.*;
. . .
assertEquals("my error message", myExpectedVar, myActualVar);
被调用时。 (我将$EXPECTED$
和$ACTUAL$
变量设置为variableOfType("")
,并带有相应的默认值expected
和actual
)
如果您希望在所有单元测试中包含某些静态导入,那么我建议您编辑" Class" 文件和代码模板。例如:
package ${PACKAGE_NAME};
#if ($NAME.endsWith("Test"))
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
import static org.mockito.BDDMockito.*;
#end
#parse("File Header.java")
public class ${NAME}
{
#if ($NAME.endsWith("Test"))
// Add any default test methods or such you want here.
#end
}
但请注意,如果您有动态的"优化导入,则会立即删除静态导入。选项(在IDE设置>编辑器>自动导入)中打开,除非您还包含使用静态导入的方法(或其他代码)。
答案 1 :(得分:0)