Připojení se k metodě v modelu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Petr Parolek
Člen | 455
+
0
-

Ahoj, jak se mám připojit k metodě v modelu prosím?

<?php
namespace Tests\App\Model\Repositories;

require __DIR__ . '/../bootstrap.php';

use App\Model\Repositories\SomeRepository;

class SomeRepositoryTest extends \Tester\TestCase
{
    public $someRepository;

    use \Testbench\TDoctrine;

    public function __construct(SomeRepository $someRepository)
    {
        $this->someRepository = $someRepository;
    }

    public function testAddItem() {
		$values = [];
        dump($this->someRepository->saveValues($values));
    }
}


(new SomeRepositoryTest())->run();
?>

Tester mi vyhodí:

-- FAILED: tests/RepositoryTests/SomeRepositoryTest.phpt
   Exited with error code 255 (expected 0)
   ArgumentCountError: Too few arguments to function Tests\App\Model\Repositories\SomeRepositoryTest::__construct(), 0 passed in tests/RepositoryTests/SomeRepositoryTest.phpt on line 27 and exactly 1 expected

   in tests/RepositoryTests/SomeRepositoryTest.phpt(14)
   in tests/RepositoryTests/SomeRepositoryTest.phpt(27) Tests\App\Model\Repositories\SomeRepositoryTest->__construct()
--\

Díky moc za pomoc.

Editoval ppar (1. 5. 2017 16:41)

h4kuna
Backer | 740
+
0
-

Instancoval jsi třídu pro test bez parametru pro konstruktor, kde máš nadefinovaný že očekáváš SomeRepository, ale žádnou jsi nepředal.

GEpic
Člen | 566
+
+4
-

Too few arguments to function ... 0 passed in ... and exactly 1 expected
Příliš málo argumentů pro funkci ... 0 předáno v ... a přesně 1 očekáván

Čtěte prosím chybová hlášení, dávají smysl.

Editoval GEpic (1. 5. 2017 17:03)

CZechBoY
Člen | 3608
+
0
-

Vytáhni si tu službu z kontejneru.

use \Testbench\TCompiledContainer;
$service = $this->getService(SomeRepository::class);

Editoval CZechBoY (1. 5. 2017 17:23)

Petr Parolek
Člen | 455
+
0
-

CZechBoY napsal(a):

Vytáhni si tu službu z kontejneru.

use \Testbench\TCompiledContainer;
$service = $this->getService(SomeRepository::class);

Díky moc, zkusím.