Я довольно новичок в TDD, и сейчас я пишу тесты в проекте Laravel, и я использую библиотеку Mockery. Я столкнулся с проблемой при попытке имитации перегрузки нового экземпляра класса.
Кажется, проблема в том, что смоделированный класс теряет свое наследование и поэтому не проходит проверку параметров при передаче в метод. Однако, когда я создаю издевательство над ребенком, не перегружая его, его наследство, похоже, подхватывается.
У меня есть занятия под названием «Родитель и ребенок». Ребенок расширяет Родителя.
// Test
public function test() {
Mockery::mock('overload:Child');
$results = service();
}
// Functions
public function service() {
$child = new Child();
serviceMethod($child);
}
public function serviceMethod(Parent $o) {
// Do something
}
Возвращает, что serviceMethod ожидает Parent, а не Child.
Я, очевидно, упускаю здесь некоторые важные детали, кто-нибудь сможет указать мне на это?