如何在PHPUnit中使用可调参数测试方法

时间:2017-12-14 12:09:39

标签: php unit-testing oop phpunit

类中有一些私有静态方法。像

这样的东西
class Some {
    …
    private static function getSome($x) {…}
    …
}

它被用作其他公共方法中可调用的相同'Some'类

$a = self::getSuperSome(
    [__CLASS__, 'getSome']
);

当我尝试更改为

$actual = Some::getSuperSome(
    ['Some', 'getSome'] // Should be changed ?
);

来自PHPUnit的错误

TypeError:参数blah-blah传递给App \ Some :: getSuperSome()必须是可调用的,给定的数组......'blah-blah

如何在PHPUnit的SomeTest类中更改args的名称以测试getSuperSame?

1 个答案:

答案 0 :(得分:-1)

首先,您需要创建namespace Testnamespace;之类的任何命名空间。然后必须将访问修饰符更改为static public function getSome($x)。然后你可以在类声明下尝试下面的代码来实现你的输出。

call_user_func_array(__NAMESPACE__ .'\Some::getSome', array('Some','getSome'));