Вот мое обслуживание, которое я хотел бы проверить:Как мне высмеять InlineScript?
class AffairesJSService {
private $inlineScript;
private $url;
private $sBasepath;
public function __construct($inlineScript, $url, $sBasepath)
{
$this->inlineScript = $inlineScript;
$this->url = $url;
$this->sBasepath = $sBasepath;
}
public function inject($aParams)
{
$url = $this->url;
$containerRoutes = new Container('IntraRouteListAffaires');
$sEtatAffaire = $containerRoutes->sEtatAffaire !== null ? $containerRoutes->sEtatAffaire : 'EN_COURS';
$iIdPrestation = $containerRoutes->iIdPrestation !== null ? $containerRoutes->iIdPrestation : 0;
$iIdCentreProfit = $containerRoutes->iIdCentreProfit !== null ? $containerRoutes->iIdCentreProfit : 0;
$this->inlineScript->appendFile($this->sBasepath . $aParams["myfile"]);
$sUrlListContrats = $url('module/action', ['idaffaire' => $aParams['idaffaire']]);
$this->inlineScript->captureStart();
echo <<<JS
loadPanelContrats('$sUrlListContrats'); JS;
$this->inlineScript->captureEnd();
} }
Ну, это мой тест, но я не знаю, как издеваться InlineScripts и объявить appendFile:
class AffairesJSServiceTest extends TestCase
{
/**
* @var MyService
*/
private $myService;
public function setUp()
{
$mockUrl = $this->getMock('Zend\View\Helper\Url\Url', array(), array(), '', false);
$inlineScript = $this->getMock('Zend\View\Helper\InlineScript\InlineScript', array(), array(), '', false);
$sBasepath = "/my/path";
$this->myService = new AffairesJSService(
$inlineScript,
$mockUrl,
$sBasepath,
);
}
public function testInject()
{
$aParams = array();
//$aParams["myfile"] = 'myfile';
$this->myService->inject($aParams);
}
Могли бы вы, пожалуйста, Помогите ? Самый проблемный вопрос - как издеваться над определенными методами zf2. Благодарю.
В чем проблема? Ваш код выглядит хорошо для меня – Alfwed
Неустранимая ошибка: вызов функции-члена appendFile() для не-объекта – Amelie
Я думаю, что я должен добавить этот метод и возвращаемое значение в мой макет – Amelie