为什么 IntelliJ 将注释标题放在错误的位置......仅用于测试?

Gho*_*ica 5 java intellij-idea

我稍微修改了 Java“类”的默认文件和代码模板(有关上下文,请参阅此问题):

#parse("File Header.java")
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
public class ${NAME} {
}
Run Code Online (Sandbox Code Playgroud)

和 Java“文件头”条目(在“包含”选项卡中)我定义了版权头。

当我现在创建一个新的(生产)类时,IntelliJ 创建:

/* that copyright header */    
package com.foo.bar

public class Whatever { ...
Run Code Online (Sandbox Code Playgroud)

美好的。然后,当我“为我创建一个单元测试”时,创建的内容是:

package com.foo.bar
/* that copyright header */    

public class WhateverTest { ...
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?或者如何解决这个问题?

Gho*_*ica 5

这不是一个错误,只是一个功能,基于 IntelliJ 允许您在多个位置/选项卡中定义这些“文件和代码模板”这一事实!

“文件”选项卡显示类、接口等条目

文件选项卡

但请注意,还有“代码”选项卡。在那里您可以找到诸如JUnit 4 Test class之类的条目:

代码选项卡

因此(简单的)解决方案:了解 JUnit 类有其独特的格式规范,它们显示在不同的位置!只要相应地调整那里的东西,一切都会按预期进行。

最后:“定义”需要更新为 Java 类一的 mathc,例如:

军级

文字:

#parse("File Header.java")
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

import static org.junit.Assert.*;

public class ${NAME} {
  ${BODY}
}
Run Code Online (Sandbox Code Playgroud)