PhpBench\Tests\Benchmark\RunnerTest::testSkip PHP Method

testSkip() public method

It should skip subjects that should be skipped.
public testSkip ( )
    public function testSkip()
    {
        $subject1 = new SubjectMetadata($this->benchmark->reveal(), 'one', 0);
        $subject2 = new SubjectMetadata($this->benchmark->reveal(), 'two', 0);
        $subject3 = new SubjectMetadata($this->benchmark->reveal(), 'three', 0);
        $subject2->setSkip(true);
        $this->benchmark->getSubjects()->willReturn([$subject1, $subject2, $subject3]);
        TestUtil::configureBenchmarkMetadata($this->benchmark);
        $this->executor->execute($subject1, Argument::cetera())->will($this->loadIterationResultCallback());
        $this->executor->execute($subject2, Argument::cetera())->will($this->loadIterationResultCallback());
        $this->executor->execute($subject3, Argument::cetera())->will($this->loadIterationResultCallback());
        $suite = $this->runner->run(new RunnerContext(__DIR__));
        $this->assertInstanceOf('PhpBench\\Model\\Suite', $suite);
        $this->assertNoErrors($suite);
        $this->assertEquals(2, $suite->getSummary()->getNbSubjects());
        $subjects = $suite->getSubjects();
        $this->assertEquals('one', $subjects[0]->getName());
        $this->assertEquals('three', $subjects[1]->getName());
        $this->executor->execute($subject2, Argument::cetera())->shouldNotHaveBeenCalled();
    }