【发布时间】:2019-11-14 10:25:39
【问题描述】:
我有一个使用 ServiceLoader 的应用程序。
有一个服务接口 MyFancyService 及其实现:AppClassA、AppClassB 和测试实现:TestClassC、TestClassD
应用包中有META-INF.services,测试包中有另一个META-INF.services。
应用程序中的 META-INF.services 指向提供程序类 AppClassA 和 AppClassB
测试点中的 META-INF.services 到提供程序类 TestClassC 和 TestClassD
在运行应用程序时,ServiceLoader.load(MyFancyService.class)) 仅加载 AppClassA、AppClassB。显然,类路径中没有测试类,这就是原因。我明白这一点,这是可取的
在运行测试时,ServiceLoader.load(MyFancyService.java)) 会加载所有类 AppClassA、AppClassB、TestClassC、TestClassD。
有没有办法限制服务加载器在运行测试时只加载TestClassC、TestClassD?
【问题讨论】:
-
通常测试文件测试应用程序类,没有应用程序你会测试什么?
-
更新:写完答案后我发现了这个帖子:stackoverflow.com/questions/28805688/…
标签: java unit-testing serviceloader