静态方法是邪恶的,那么Laravel如何使用这么多静态调用呢?

Hyd*_* B. 3 php tdd laravel

如果你已经进入了测试驱动的驱动开发,特别是在PHP中,你可能知道静态方法很难测试.PHPUnit已弃用模拟静态调用.

怎么做家伙模拟静态电话?如果静态对TDD不利,那么Laravel如何测试所有静态调用?

Ale*_*nin 7

是的,Laravel使用了很多外墙,但你可以很容易地测试一切.我建议你阅读Jeffrey Way的"Laravel Testing Decoded",它会回答你的所有问题.

如果您不想使用外墙,则不必使用,因为Laravel提供了许多全局帮助程序(例如redirect()for Redirect::,auth()for Auth::,session()for Session::等).此外,您可以随时使用DI:

public function index(User $user)
{
    $users = $user->all();
Run Code Online (Sandbox Code Playgroud)

代替:

$users = User::all();
Run Code Online (Sandbox Code Playgroud)

  • 另一个合理的答案是 Laravel 并没有真正遵循良好的设计规则。 (2认同)