我在JavaFX应用程序中有一个var documents = new[]
{
new Document() { id = 1, ParentId = null, name = "fruits" },
new Document() { id = 2, ParentId = null, name = "vegetables" },
new Document() { id = 3, ParentId = 2, name = "tomatoes" },
new Document() { id = 4, ParentId = 1, name = "apples" },
new Document() { id = 5, ParentId = 4, name = "golden apples" },
new Document() { id = 6, ParentId = 4, name = "red apples" },
};
类。班上做了很多事。其中一件事是显示表格中某些目录中包含的文件列表。只有具有正确命名约定的文件才会显示在表格中。
var lookup = documents.ToLookup(x => x.ParentId);
Func<int?, IEnumerable<Document>> heirarchySort = null;
heirarchySort = pid =>
lookup[pid].SelectMany(x => new[] { x }.Concat(heirarchySort(x.id)));
IEnumerable<Document> sorted = heirarchySort(null);
类包含一个私有方法Controller
,它接收文件列表并返回适用于命名约定的文件列表。然后返回的文件显示在表格中。 Controller
类中没有公共方法。
我想对过滤功能进行单元测试(使用junit),但filterByNamingConvention
方法应保持私有(因此不能在类外调用)。我该如何实施这个单元测试?我会避免反射模式。
这种方法会转到图书馆吗?但该方法只使用一次。
以下是代码的一部分:
Controller