2015-07-22 3 views
0

мне нужно проверить метод, который выглядит, как это, но мой вопрос: Как я должен ввести этот метод особенно когда я не могу «фиктивный» AbstractController, и без переменной AbstractController это не будет работатьМетод с аргументом AbstractController phpunit. Любые намеки

public function add(\Queue\Controller\AbstractQueueController $task) 
{ 
     //Logic of method   
} 
+0

Почему вы не можете издеваться над этим? – Ankh

+0

Хорошая практика заключается не в том, чтобы высмеивать AbstractClasses of Controllers, а также вы даже не должны тестировать AbstractClasse. В этом случае я хочу, чтобы объект абстрактного класса устанавливал его в открытый класс службы очереди, поэтому он является исключением. – Hikaryu

ответ

1

Вам не нужно издеваться над этим. Вы уже установили его как параметр, поэтому этот тест не касается тестирования AbstractQueueController.

Так, например, если ваша функция выглядит следующим образом:

public function add(\Queue\Controller\AbstractQueueController $task) 
{ 
    $task->doSomething(); 
} 

Затем, в тесте, AbstractQueueController должен получить вызов метода DoSomething(), а затем утверждать, результат этого.

+0

Ваш намек был полезен, потому что я понял, как проверить эту часть кода, и что самое смешное, что он меняет состояние другого метода и начинает возвращать объект, а не нулевое состояние – Hikaryu

0

хорошо я сделал что-то подобное, что я сделал расширенный класс

class addtest extends Queue\Controller\AbstractQueueController 
{ 
    public function task() 
    { 

    } 
} 

, а затем в моем QueeuServiceTest продлен PHPUnit_framework_TestCase

я сделал TestMethod

public function testadd() 
{ 
    $this->queueService->add(new addtest); 
} 

охватывает код, но я не знаю, что это хорошая практика

Смежные вопросы