unit testingServiceLoader
我有一个方法,使用ServiceLoader
使用资源加载服务。
public List getContextData(int Id) { List list = new ArrayList(); ServiceLoader serviceLoader = ServiceLoader.load(ContextPlugin.class); for (Iterator iterator = serviceLoader.iterator(); iterator.hasNext();) { list .addAll(iterator.next().getContextData(Id)); } return list; }
我应该如何使用Junit对上述方法进行unit testing?
您需要将“provider-configuration file”复制到测试类目录中。
假设您的测试类文件位于
test/classes/
您需要将“provider-configuration file”复制到
test/classes/META-INF/services/your.package.ContextPlugin
如何复制文件取决于您的构建工具(例如maven,gradle,ant,…)
作为maven的示例,您应该将它们存储在test resources文件夹中。
src/test/resources/META-INF/services/your.package.ContextPlugin