我正在为依赖于另一个服务类的服务类编写测试。
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
属性吗? (女巫指的是数组)