静态方法是邪恶的,那么 Laravel 怎么会使用那么多静态调用呢?
Static methods are evil, then how come Laravel uses so much static calls?
如果您从事过测试驱动开发,尤其是 PHP,您可能知道静态方法很难测试。 PHPUnit 已弃用模拟静态调用。
伙计们如何模拟静态调用?如果静态对 TDD 不利,Laravel 如何测试其所有静态调用?
是的,Laravel 使用了很多门面,但您可以轻松 test everything。我建议您阅读 Jeffrey Way 的 "Laravel Testing Decoded",它会回答您的所有问题。
如果您不想使用外观,则不必,因为 Laravel 提供了很多全局助手(例如 redirect()
用于 Redirect::
,auth()
对应 Auth::
,session()
对应 Session::
等)。此外,您始终可以使用 DI:
public function index(User $user)
{
$users = $user->all();
而不是:
$users = User::all();
如果您从事过测试驱动开发,尤其是 PHP,您可能知道静态方法很难测试。 PHPUnit 已弃用模拟静态调用。
伙计们如何模拟静态调用?如果静态对 TDD 不利,Laravel 如何测试其所有静态调用?
是的,Laravel 使用了很多门面,但您可以轻松 test everything。我建议您阅读 Jeffrey Way 的 "Laravel Testing Decoded",它会回答您的所有问题。
如果您不想使用外观,则不必,因为 Laravel 提供了很多全局助手(例如 redirect()
用于 Redirect::
,auth()
对应 Auth::
,session()
对应 Session::
等)。此外,您始终可以使用 DI:
public function index(User $user)
{
$users = $user->all();
而不是:
$users = User::all();