나는 Config
facade에 의존하는 패키지를 만들고 있습니다. 코드 자체는 정상적으로 작동하지만 테스트 할 때 문제가 발생합니다. 모의은 Laravel없이 Config Facade를 밝게합니다
Config::shouldReceive('foo.bar')
->andReturn(true);
으로 많은 others
, 나는 몇 가지 문제에 부딪쳤다 :처음에 나는이 코드를 사용했다.
내가 나중에 Config
외관을 조롱하는 것을 읽었습니다 isn't encouraged.
Config::set('foo.bar', true);
이 잘 작동합니다.
하지만 내 문제는 내가 아닙니다. 내가 얻을 수 있기 때문에 문제가 해결되지 않습니다, 그래서 난 그냥 몇 Illuminate
패키지에 의존 : 이 시점에서 RuntimeException: A facade root has not been set.
가, 일부는 난 그냥 Config
저장소 의존성을 주입해야한다고 제안 수도 있지만 나는 Config
외관을 사용하고 있습니다 Eloquent
모델에서 사용되는 특성 때문에 DI가 작동하지 않습니다.
내가 태클 할 수있는 다른 방법이 있습니까?
감사합니다!
PS :이 질문은 또한 유사한 문제로 실행 분들을 위해 Laracasts
. Lumen을 사용하고 있는데, 여전히'Illuminate' 패키지의 대부분을 가지고 있기 때문에,'Config :: set()'은'bootstrap/app.php'에서 Facades를 활성화하는 한 작동해야합니다. 필자가 사용할 수있는 전체 프레임 워크가없는 독립형 환경에서 Laravel/Lumen 패키지를 테스트하기위한 용도로 사용하므로 Testbench에 의존해야합니다.또한 문서에 언급 된대로'Config'를 조롱하는 것은 좋은 방법이 아닙니다. 그러므로, downvote. –