我试图通过我的控制器构造函数注入一个类,以便我可以测试它。但是,我使用的I类来自external package。类SteamId
需要传递参数。
$steam = new \SteamCondenser\Community\SteamId('1234');
因此,虽然这有效,但它不可测试或可模仿。一旦用户登录"我就会从URL获取所需的ID,因此我无法在启动时将类绑定到SteamId的实例,因为我当时不知道ID。 E.g
App::bind('SteamCondenser\Community\SteamId', function() {
return new SteamCondenser\Community\SteamId('1234');
});
class SteamController extends BaseController {
public function __construct(\SteamCondenser\Community\SteamId $steam) {
$this->steam = $steam;
}
在我的SteamController
上的某个方法被调用之前,我不会识别该ID。
我如何解决这个问题,以便能够测试和模拟课程?