PHPUnit распознает только три из моих четырех тестов - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть класс, содержащий четыре модульных теста.Класс выглядит следующим образом:

class TestWorkflowService extends TestCase
{
    private $containerMock;

    private $workflowEntityMock;

    private $workflowService;

    public function setup()
    {
        $this->containerMock = $this->createMock(ContainerInterface::class);
        $this->workflowService = new WorkflowService($this->containerMock);
        $this->workflowEntityMock = $this->createMock(WorkflowInterface::class);
    }

    public function testGetWorkflowProcessByEntityNullResult()
    {
        self::assertNull($this->workflowService->getWorkflowProcessByEntity($this->workflowEntityMock));
    }

    public function testGetProcessHandlerByEntityNullResult()
    {
        self::assertNull($this->workflowService->getProcessHandlerByEntity($this->workflowEntityMock));
    }

    public function testRestartWorkflow()
    {
        $modelStateMock = $this->createMock(ModelState::class);
        $processHandlerMock = $this->createMock(ProcessHandler::class);
        $processHandlerMock->method('start')->willReturn($modelStateMock);
        $this->containerMock->method('get')->willReturn($processHandlerMock);
        self::assertNull($this->workflowService->restartWorkflow($this->workflowEntityMock));
    }

    public function setEntityToNextWorkflowState()
    {
        $modelStateMock = $this->createMock(ModelState::class);
        $processHandlerMock = $this->createMock(ProcessHandler::class);
        $processHandlerMock->method('start')->willReturn($modelStateMock);
        $this->containerMock->method('get')->willReturn($processHandlerMock);
        self::assertNull($this->workflowService->setEntityToNextWorkflowState($this->workflowEntityMock));
    }
}

... но когда я запускаю PHPUnit, я получаю такой результат:

... 3/3 (100%)

Время: 2,17 секунды, Память: 5,75 МБ

ОК (3 теста, 3 утверждения)

Почему мой четвертый тест не распознается?

1 Ответ

0 голосов
/ 26 сентября 2018

PHPUnit определяет методы тестирования, используя следующие правила :

Тесты являются открытыми методами с именем test *.

В качестве альтернативы, вы можете использовать@test аннотация в блоке метода, чтобы пометить его как тестовый метод.

Это позволяет использовать другие открытые методы в вашем тестовом классе, не интерпретируя их как тесты (хотя я не уверен,почему вы вообще это делаете).

Измените имя вашего метода на testSetEntityToNextWorkflowState или пометьте его аннотацией @test.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...