parser = new AnnotationParser(); $this->parser->addRegisterPath(WORKING_DIR . "/src/Module/", "Module"); try { $this->parser->registerMods(); } catch (ReflectionException $e) { throw $e; } } public function testAnnotation() { ob_start(); $gen = $this->parser->generateAnnotationEvents(); $m = $gen[OnWorkerStart::class][0]->method; $class = $gen[OnWorkerStart::class][0]->class; $c = new $class(); try { $c->$m(); } catch (Exception $e) { } $result = ob_get_clean(); echo $result; $this->assertStringContainsString("我开始了!", $result); } public function testAnnotation2() { foreach ($this->parser->generateAnnotationEvents() as $k => $v) { foreach ($v as $vs) { $this->assertTrue($vs->method === null || $vs->method != ''); $this->assertTrue(strlen($vs->class) > 0); } } } public function testAnnotationMap() { $map = $this->parser->getMiddlewareMap(); $this->assertContainsEquals("timer", $map[Hello::class]["timer"]); } public function testMiddlewares() { $wares = $this->parser->getMiddlewares(); $this->assertArrayHasKey("timer", $wares); } public function testReqMapping() { $mapping = $this->parser->getReqMapping(); $this->assertEquals("index", $mapping["method"]); } }