/** * @covers ::fromBacktrace */ public function testRetrievesFileAndLineToo() { // ---------------------------------------------------------------- // setup your test $backtrace = $this->getBacktrace(); $expectedFile = '/tmp/jackpot'; $expectedLine = 31415; // ---------------------------------------------------------------- // perform the change $actualCaller = NonCheckCodeCaller::fromBacktrace($backtrace); // ---------------------------------------------------------------- // test the results $this->assertEquals($expectedFile, $actualCaller[2]); $this->assertEquals($expectedLine, $actualCaller[3]); }
/** * work out who is throwing the exception * * we unwind the stack, looking for code that is NOT in these namespaces: * * - Checks * - Exceptions * - Requirements * * @return array * the calling class, and the calling method */ private function getNonCheckCaller() { $backtrace = debug_backtrace(); return NonCheckCodeCaller::fromBacktrace($backtrace); }