When you create tests in Laravel, you sometimes need to be able to access private properties.

There is a way to get around this by using the following helper method:

public static function getProperty($object, $property)
{
$reflectedClass = new \ReflectionClass($object);
$reflection = $reflectedClass->getProperty($property);
$reflection->setAccessible(true);
return $reflection->getValue($object);
}

And then in the unit test, use that like this:

$value = ReflectionHelper::getProperty($class, 'someProperty');
$this->assertSame($expected, $value);

Originally found the code here.