PHPUnit测试断言函数/var是公共私有的还是受保护的?

PHPUnit测试断言函数/var是公共私有的还是受保护的?,phpunit,Phpunit,有没有一种方法可以断言一个方法或变量是公共私有的还是受phpunit保护的?phpunit不提供这些断言,而且您通常不使用单元测试来测试您的键入能力。他们应该验证代码是否在运行时工作。以下是更多无意义的单元测试: 断言类名为CorrectClassName 断言函数foo(){return 5;}返回5 断言函数注释不包含“winning”一词 现在,有时候你只是想做一些事情,即使它不被推荐或者没有什么价值。我知道我知道。:)将其添加到基本测试用例类: /** * Assert that

有没有一种方法可以断言一个方法或变量是公共私有的还是受phpunit保护的?

phpunit不提供这些断言,而且您通常不使用单元测试来测试您的键入能力。他们应该验证代码是否在运行时工作。以下是更多无意义的单元测试:

  • 断言类名为
    CorrectClassName
  • 断言
    函数foo(){return 5;}
    返回
    5
  • 断言函数注释不包含“winning”一词
现在,有时候你只是想做一些事情,即使它不被推荐或者没有什么价值。我知道我知道。:)将其添加到基本测试用例类:

/**
 * Assert that a method has public access.
 *
 * @param string $class name of the class
 * @param string $method name of the method
 * @throws ReflectionException if $class or $method don't exist
 * @throws PHPUnit_Framework_ExpectationFailedException if the method isn't public
 */
function assertPublicMethod($class, $method) {
    $reflector = new ReflectionMethod($class, $method);
    self::assertTrue($reflector->isPublic(), 'method is public');
}

完成
assertProtectedMethod()
assertPrivateMethod()
只作为练习。您可以对属性执行相同的操作,甚至可以使此方法更通用,以处理方法或属性(无论找到哪个),如果两者都不存在,则抛出一些其他错误。

如果您需要确保代码的某些部分具有一定的可见性,最好使用。PHPUnit不是用于此目的的合适工具。测试可见性非常好。我不认为代码嗅探器是正确的工具。在我看来,代码嗅探器是错误的工具。我甚至不知道一个codesniffer会怎么做Michael所要求的,而上帝只知道codesniffer的配置。确切地说:“你通常不使用单元测试来测试你的打字能力”和非常好的示例+1:)