【发布时间】:2013-06-18 12:51:20
【问题描述】:
我正在使用 Laravel 4 开发一个应用程序,我有一个问题想在完全投入使用之前被问到。
我已经创建了一些自定义类和外观,并成功添加到 laravel 的配置文件中。
例如:
namespace Helpers;
class Ftp {
public function connect($data)
{
// Do something
}
}
我实际上是在使用 php 的 use 语句来访问门面,就像我在 Laravel 中通常所做的那样:
namespace Helpers;
use Illuminate\Support\Facades\File;
class Ftp {
public function Connect($data)
{
$file = File::get('text.txt');
...
}
}
现在在自定义类中使用 laravel 外观的正确方法是什么?我不觉得这是一个好的选择,特别是考虑到可测试性。任何建议表示赞赏!
【问题讨论】:
-
为什么对可测试性没有好处?你可以做
File::shouldReceive('get')->once()->with('text.txt')->andReturn('foo'); -
如果您希望使用不同的文件进行测试,请将
$file作为参数 -
@crynobone 没错,laravel 的门面有内置的 mock 方法,我忘了。
-
@OneTrickPony 你也是对的,这对我来说是一个愚蠢的例子,更合适的情况可能是在继续之前需要使用验证器的外观。