有人知道如何使用eclipse模板在类签名上方插入“@RunWith anotation”吗?
例:
@RunWith(Parameterized.class)
public class MyClassTest {
...
@Parameters
public static Collection<Object[]> parameters() {
List<Object[]> list = new ArrayList<Object[]>();
list.add(new Object[] { "mind!", "find!" });
list.add(new Object[] { "misunderstood", "understood" });
return list;
}
...
}
__
模板:
// TODO: move this '@RunWith(Parameterized.class)' to class anotation
@Parameters
public static Collection<Object[]> parameters() {
${type:elemType(collection)}<Object[]> parametersList = new ${type:elemType(collection)}<Object[]>();
${cursor}// TODO: populate collection
return parametersList;
}
__感谢您的帮助!
答案 0 :(得分:3)
不幸的是,您无法使用Eclipse模板向现有的封闭类添加注释(至少,我不知道)。但是,有一种解决方法。以下是模板的修改版本:
@${runnerType:newType(org.junit.runner.RunWith)}(${paramterizedType:newType(org.junit.runners.Parameterized)}.class)
public class ${primary_type_name} {
@${parametersType:newType(org.junit.runners.Parameterized.Parameters)}
public static ${collectionType:newType(java.util.Collection)}<Object[]> parameters() {
${baseCollectionType}<Object[]> parametersList = new ${concreteCollectionType}<Object[]>();
${cursor}// TODO: populate collection
return parametersList;
}
}
使用模板(假设其名称为“参数化”):
Cntrl+Space
激活模板(您可能必须从模板列表中选择模板。我只有一个名为Parameterized的模板,因此Eclipse只是自动使用它我)。类定义将替换为包含@RunWith
注释的定义。我使用 $ { id :newName(reference)} 模板变量来使Eclipse自动添加所有必需的导入({{1的导入除外) }和${baseCollectionType}
,你必须手动添加这些...谢天谢地${concreteCollectionType}
)
这很难描述。你必须尝试它才能确切地了解它是如何工作的。如果需要澄清我的说明,请发表评论。