我正在创建一个包含几个元素的列表(ArrayList)。
我想确保它包含我添加的元素。
现在,这只有在一些情况下才能正常工作,因为顺序会改变:
@Test
public void testThreeReporters(){
ClientConfig myConfig = new ClientConfigFactory().getConfig().withMetricsReporters(new HashSet<>(Arrays.asList(ClientConfig.MetricsReporterType.LOG, ClientConfig.MetricsReporterType.GRAPHITE, ClientConfig.MetricsReporterType.CLOUD_WATCH)));
List<ScheduledReporter> reporters = MetricsFactory.configureMetricsReporters(MetricsFactory.createMetricsClient(),myConfig);
assertEquals(3, reporters.size());
assertTrue(reporters.get(2) instanceof Slf4jReporter);
assertTrue(reporters.get(1) instanceof GraphiteReporter);
assertTrue(reporters.get(0) instanceof CloudWatchReporter);
}
我想使用“contains”,以避免受到顺序的影响。 我尝试了以下代码:
assertTrue(Arrays.asList(reporters).contains((Arrays.asList(ClientConfig.MetricsReporterType.LOG, ClientConfig.MetricsReporterType.GRAPHITE, ClientConfig.MetricsReporterType.CLOUD_WATCH))));
还有其他组合方式,但是它不能正常工作。