nyholm/nsa

查看一切,做你想做的。没有任何隐私规则能阻止我们。在测试、调试和固定测试用例中用于访问属性和方法。

维护者

详细信息

github.com/Nyholm/NSA

主页

源代码

问题

支持包维护!
nyholm

1.3.0 2021-07-15 18:25 UTC

This package is auto-updated.

Last update: 2024-09-16 00:56:50 UTC


README

Latest Version Software License Build Status Code Coverage Quality Score Total Downloads

这个小型类可以帮助您测试您的私有和受保护的属性和方法。有人可能会说您永远不应该测试私有方法,但有时这确实可以让测试代码更干净、更容易编写和理解。这个库全部关于开发体验(DX)。

用法

$object = new Dog();

NSA::setProperty($object, 'name', 'Foobar');
$name = NSA::getProperty($object, 'name');
$result = NSA::invokeMethod($object, 'doAction', 'jump', '1 meter');

echo $name; // "Foobar"
echo $result; // "Dog just did 'jump' for 1 meter"

// Access static properties and methods
$age = NSA::getProperty('\Dog', 'age');
echo $age; // 12
class Dog
{
    private $name = 'unnamed';
    private static $age = 12;

    private function doAction($action, $parameter)
    {
        return sprintf("Dog just did '%s' for %s", $action, $parameter);
    }
}

安装

$ composer require nyholm/nsa

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。