$this->app->when(ImportCommand::class)
->needs(Foo::class)
->give(function() {
return new Foo(env('IMPORT_BAR'));
});
这很好:
public function __construct(Foo $foo) {
// Foo with the argument is now injected
}
我想在我的导入测试类中模拟Foo,但这不起作用。
$this->mock(Foo::class, function ($mock) {
$mock->shouldReceive([
'login' => true,
'get' => true,
'rename' => true,
]);
});
$this->artisan('foo:bar');
调用artisan命令时,将使用 real Foo类代替模拟。我该如何解决?
答案 0 :(得分:0)
您应该能够对其进行上下文绑定,从我的角度来看,如何对其进行模拟尚不清楚,但是假设您可以使用Mockery
或类似的方法来获得模拟的实例,可以使用{ {1}}方法。该实例需要包装在addContextualBinding
中并返回。
closure