Предположим, у меня есть черта, у которой в настоящее время есть метод:
trait MyTrait
{
public function traitMethod()
{
return true;
}
}
Теперь предположим, что эта черта используется несколькими классами, но я не хочу писать модульный тест для каждого класса.Вместо этого я хочу написать один модульный тест только для черты:
public function testTraitMethod()
{
$trait = $this->getMockForTrait(MyTrait::class);
$this->assertTrue($trait->traitMethod());
}
Но проблема в том, что класс может переопределить метод черты:
class MyClass
{
use MyTrait;
public function traitMethod()
{
return false;
}
}
В этом случае MyClass
делает что-то не так, но я не знаю об этом, так как я тестирую только черту.
Моя идея - написать отдельный модульный тест для каждого класса, просто чтобы проверить, использует ли он эту чертуи это не отменяет этот метод.Если класс должен переопределить метод trait, тогда ему также нужен специальный юнит-тест.
В настоящее время я пишу юнит-тесты для каждого класса, который реализует мою черту, но это, конечно, тесты копирования-вставкиповсюду.
Так есть ли способ проверить, вызывает ли класс свой метод черты?