Я пишу тест для класса обслуживания, который зависит от другого класса обслуживания.
foo.php
class Foo {
public function __construct(Bar $bar)
{
$this->bar = $bar;
}
public function fooMethod()
{
$getSomeArrayOrNull = null;
$this->bar->barMethod($getSomeArrayOrNull);
}
}
Bar.php
class Bar {
public function barMethod(array $array)
{
return null;
}
}
test.php
class Test extends TestCase {
public function testIt()
{
$bar = Mockery::mock(Bar::class);
$bar->shouldReceive('barMethod')->withAnyArgs()->andReturn(true);
$foo = new Foo();
// this throws an error because invalid argument type in Bar method
$foo->fooMethod();
}
}
Могу ли я как-то сказать издевательство над проверкой типов в $bar->barMethod()
?
Я пишу модульный тест, и я хотел бы, чтобы эта часть кода была полностью смоделирована.
Это неприятный запах кода, я должен просто высмеять свойство $getSomeArrayOrNull
? (ведьма означает всегда массив)