メソッドが実際に実行され、モックされた値を返したくないので、なぜ私のメソッドのモックを動作させないのか分かりません。 (symfonyの)だから、PHPunitメソッドのモックが機能しない
$this->mockedObject = $this
->getMockBuilder('Object')
//->setConstructorArgs(array('em' => $this->entityManager, 'router' => $this->mockedRouter))
->disableOriginalConstructor()
->setMethods(array('method1', 'method2'))
->getMock();
$this->mockedObject
->expects($this->once())
->method('method2')
->willReturn(9);
あなたは、私が法2を嘲笑見、それが実行されているため、方法2は、決して、9値を返さないよう:ここ
Error: Call to a member function createQueryBuilder() on null
オリジナル方法2:
private function method2($repository) {
$qb = $this->em->createQueryBuilder();
$qb->select('count(e.id)');
$qb->from($repository, 'e');
return $qb->getQuery()->getSingleScalarResult();
}
ここで問題は、mockedObjectがcreateQueryBuilder
メソッドでmethod2()を呼び出すため、
H私はの方法2を嘲笑し9値で返すことができますか?
プライベートメソッドをモックできません – Matteo
メソッドの可視性をprotectedに変更してみてください – Matteo