### Question:
Experiment { void startExperiment () { log.info(STARTING_NEW_EXPERIMENT); setExperimentStartup(executorService.submit(() -> startExperimentInner(MDC.getCopyOfContextMap()))); setExperimentState(ExperimentState.STARTING); } Experiment(Container container); String getExperimentMethodName(); Container getContainer(); void setPreferredExperiment(String preferredExperiment); Instant getLastSelfHealingTime(); @JsonIgnore Platform getExperimentLayer(); String getExperimentLayerName(); @JsonIgnore ExperimentMethod getExperimentMethod(); Runnable getSelfHealingMethod(); void setSelfHealingMethod(Runnable selfHealingMethod); @JsonIgnore Runnable getFinalizeMethod(); void setFinalizeMethod(Runnable finalizeMethod); @JsonIgnore Callable<ContainerHealth> getCheckContainerHealth(); void setCheckContainerHealth(Callable<ContainerHealth> checkContainerHealth); void setFinalizationDuration(Duration finalizationDuration); String getId(); ExperimentType getExperimentType(); AtomicInteger getSelfHealingCounter(); ExperimentState getExperimentState(); Instant getStartTime(); void setMinimumDuration(Duration minimumDuration); void setMaximumDuration(Duration maximumDuration); Boolean getWasSelfHealingRequired(); @Override String toString();  }### Answer:
@Test public void startExperiment () { experiment.startExperiment(); await().atMost(1, TimeUnit.SECONDS) .until(() -> mockingDetails(experiment).getInvocations() .stream() .map(InvocationOnMock::getMethod) .map(Method::getName) .anyMatch("startExperimentInner"::equals)); verify(experiment).setExperimentState(STARTING); }