我正在使用prophesize
方法来模拟类
例子:
$user = $this->prophesize(User::class);
如何模拟 PHP 内置方法?
正是我需要嘲笑locale_accept_from_http($language);
你知道如何处理这个吗?
我正在使用prophesize
方法来模拟类
例子:
$user = $this->prophesize(User::class);
如何模拟 PHP 内置方法?
正是我需要嘲笑locale_accept_from_http($language);
你知道如何处理这个吗?
您不会模拟 PHP 的本机方法,而是为您需要的所有内容编写一个包装器。
class LocaleListener
{
protected $language;
public function __construct($language) {
$this->language = $language;
}
public function getPreferredLocale() {
return locale_accept_from_http($this->language);
}
}
现在您可以使用以下命令进行模拟:
$listener = $this->prophesize(LocaleListener::class);
$listener->getPreferredLocale()->willReturn('en_GB');
如果您对 Symfony 建议从标头处理用户区域设置的方式感兴趣,请在他们的演示应用程序中查看这个 EventListener: https://github.com/symfony/demo/blob/master/src/EventSubscriber/RedirectToPreferredLocaleSubscriber。 php