@Test
  public void cannotFulfill() throws Throwable {
    when(requirements.canFulfill()).thenReturn(false);

    Runner runner = runnerBuilder.runnerForClass(TestCase.class);

    assertNull(runner);
  }
  @Test
  public void canFulfill() throws Throwable {
    when(requirements.canFulfill()).thenReturn(true);

    Runner runner = runnerBuilder.runnerForClass(TestCase.class);

    assertNotNull(runner);
    assertThat(runner, is(RequirementsRunner.class));
  }
  @Before
  public void setup() {
    TestRunConfiguration testRunConfig = mock(TestRunConfiguration.class);

    requirements = mock(Requirements.class);
    RequirementsBuilder requirementsBuilder = mock(RequirementsBuilder.class);
    when(requirementsBuilder.build(any(Class.class), any(RequirementsConfiguration.class)))
        .thenReturn(requirements);

    runnerBuilder = new RequirementsRunnerBuilder(testRunConfig);
    runnerBuilder.setRequirementsBuilder(requirementsBuilder);
  }