我试图弄清楚如何测试我正在研究的一个小型库。以这种简化方法为例:

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”。

09-11 12:06