我试图弄清楚如何测试我正在研究的一个小型库。以这种简化方法为例:
private int countMappableFields(Class<?> type) {
int mappableFields = 0;
Field[] fields = type.getFields();
for (int i = 0; i < fields.length ; i++) {
if (FieldHelper.isMappable(fields[i]))
mappableFields++;
}
return mappableFields;
}
我是否应该在单独的文件中定义几个类并在所有测试中引用它们?是否有其他方法可以为每种情况构造一个对象?
最佳答案
您可以在测试类中内联定义类。没有理由为它们制作单独的文件。
public class TestCase {
private static class NoFieldClass
{
}
// And so on.
@Test
public void shouldFindZeroMappableFieldsInNoFieldClass() {
assertTrue(0 == countMappableFields(NoFieldClass.class));
}
}
这样可以使您的测试源代码区域保持整洁。它将创建多个类文件,但至少您定义的内联类将看起来像“ TestCase $ NoFieldClass.class”,而不是顶级“ NoFieldClass.class”。