. **/ use PHPUnit\Framework\TestCase; abstract class CParserTest extends TestCase { abstract public function dataProvider(); /** * Return an instance of the tested parser. * * @return CParser */ abstract protected function getParser(); /** * @dataProvider dataProvider * * @param $string * @param $pos * @param $expected_rc * @param $expected_match */ public function testParseValid($string, $pos, $expected_rc, $expected_match) { $parser = $this->getParser(); $this->assertSame( [ 'rc' => $expected_rc, 'match' => $expected_match, 'length' => strlen($expected_match) ], [ 'rc' => $parser->parse($string, $pos), 'match' => $parser->getMatch(), 'length' => $parser->getLength() ] ); } }