Можно ли подменить trait в тесте?

194
07 июля 2017, 07:19

У меня есть класс, часть функционала в котором реализует trait. Чтобы все протестировать необходимо данный trait подменить на свой (тестовый).

Как это можно сделать ?

Answer 1

Наиболее простым решением будет унаследовать новый класс от исходного и подключить к нему тестовый трейт, который спрячет методы исходного трейта.

То есть если у нас есть исходный трейт и класс:

trait SrcTrait {
    public function check(){
        echo "src-trait";
    }
}
class Test {
    use SrcTrait;
}

а также тестовый трейт:

trait TestTrait {
    public function check(){
        echo "test-trait";
    }
}

то при проведении тестов мы создаем новый класс наследник и подключаем к нему тестовый трейт.

class Test2 extends Test {
    use TestTrait;
}
$x = new Test2();
$x->check();
READ ALSO
Ajax запрос для запуска PHP скрипта

Ajax запрос для запуска PHP скрипта

В общем, у меня есть форма, я аяксом передаю данные с формы в файлик пхп и из него в бд, потом есть еще один файлик пхп который забирает данные...

214
Работа с объектами UI в другом классе Qt

Работа с объектами UI в другом классе Qt

Хочу напрямую обращаться к элементам интерфейса, содержащихся в Ui MainWindowКак это реализовать, не используя сигналы и слоты? Мне нужно передать...

428
Поиск по паре ключ-значение

Поиск по паре ключ-значение

Имеется список на multimap пара ключ-значениеВ списке присутствуют не уникальные значения

279