Laravel 4测试"命令"?

deb*_*ian 7 php unit-testing laravel-4

我已经尝试在Laravel 4中测试我的命令,因为它们是我系统的重要组成部分,但似乎文档覆盖率很差,它们只能解释控制器和某些模型的基本测试.

在命令中,您可以通过命令行将参数传递给类,并通过$ this-> input属性接收它,我不知道如何模拟.

每当我尝试为我的命令运行测试时,当它期望"fire"方法中的参数时,我会收到此错误:

Fatal error: Call to a member function getArgument() on a non-object in /var/www/html/project/vendor/laravel/framework/src/Illuminate/Console/Command.php on line 153
Run Code Online (Sandbox Code Playgroud)

这是合乎逻辑的,没有传递任何论据.有没有办法测试这个功能?...

谢谢

cry*_*one 3

大部分可以使用 Symfony Command Tester 完成(因为 Command 基于 Symfony Console),例如: http: //alexandre-salome.fr/blog/Test-your-commands-in-Symfony2。但是,如果您必须调用另一个 artisan 命令(例如$this->call('db:seed');or 等​​),这将开始失败,因为这实际上是Illuminate\Console\Application特定的语法。

如果有人对上述情况有解决方案,我很乐意。