Size: a a a

2020 November 27

D

Dmitry in symfony
тогда код покажите
источник

AK

Alexander Kaluzhsky in symfony
слишком много скопировалось
источник

D

Dmitry in symfony
поэтому пастебин наше все :)
источник

AK

Alexander Kaluzhsky in symfony
```
$func = function ()
   {
     $args = func_get_args();
     $invoiceId = $args[1];
     if ($invoiceId != '91570d5e-b8d3-4e47-0176-03977014061b')
     {
       return null;
     }
     return IncomingInvoiceDto::newFromArray(
       json_decode(file_get_contents(DIR . '/../../Data/ShipmentUpdate/IncomingInvoiceDto.json'), true));
   };

   $this->documentServiceMock->method('getIncomingInvoiceById')->willReturnCallback($func);
   $this->documentServiceMock->method('getIncomingInvoiceFromStore')->willReturnCallback($func);

``
источник

AK

Alexander Kaluzhsky in symfony
это из первого теста, сюда заходит отладка
источник

AK

Alexander Kaluzhsky in symfony
$func = function ()
   {
     $args = func_get_args();
     $invoiceId = $args[1];
     if ($invoiceId != '91570d5e-b8d3-4e47-0176-03977014061b')
     {
       return null;
     }
     $invoice =  IncomingInvoiceDto::newFromArray(
       json_decode(file_get_contents(__DIR__ . '/../../Data/ShipmentUpdate/IncomingInvoiceDto.json'), true));
     return $invoice->setItems([]);
   };

   $this->documentServiceMock->method('getIncomingInvoiceById')->willReturnCallback($func);
   $this->documentServiceMock->method('getIncomingInvoiceFromStore')->willReturnCallback($func);
источник

AK

Alexander Kaluzhsky in symfony
сюда уже не заходит
источник

D

Dmitry in symfony
а создание моков ?
источник

AK

Alexander Kaluzhsky in symfony
  public function setUp(): void
 {
   $this->documentServiceMock = $this->getMockBuilder(DocumentService::class)
     ->disableOriginalConstructor()->getMock();
 }
источник

D

Dmitry in symfony
tearDown ?
источник

AK

Alexander Kaluzhsky in symfony
protected function tearDown(): void
{
 parent::tearDown(); // TODO: Change the autogenerated stub
 $this->documentServiceMock = null;
}
источник

AK

Alexander Kaluzhsky in symfony
в parent только откат базы
источник

D

Dmitry in symfony
интересно, в теории с виду все должно работать
я бы на вашем месте изучил под дебаггером моки - один и тот же обьект или разные ?
источник

D

Dmitry in symfony
если разные - закапывался бы в колбек и трейс и смотрел что откуда вызывается
у вас 6-й пхпюнит, может это какой-то его баг
источник

AK

Alexander Kaluzhsky in symfony
Вот в теории да, но постоянно натыкаюсь. Мб я делаю что-то не так, судя по всем мануалам должно работать, но нет.
Попробую поднять версию юнита, мб оно само и пройдет, но за помощь спасибо)
источник

D

Dmitry in symfony
ну и ради тесты, попробуйте моки создавать прямо в тесте - чо будет ?
источник

D

Dmitry in symfony
чтобы изменить видимость перменной для мока
источник

D

Dmitry in symfony
и еще вопрос, разве моку не нужен expects() в обязательном порядке ?
источник

AK

Alexander Kaluzhsky in symfony
Вроде это для контроля сколько раз вызовется функция в тесте если я ничего не путаю)
источник

СВ

Сергей Вершинин... in symfony
да, это в роли асерта
источник