Модульное тестирование SilverStripe с использованием Behat пропускает шаги / методы тестирования без выполнения утверждений - PullRequest
0 голосов
/ 22 марта 2020

Я работаю над проектом SilverStripe. Я пытаюсь написать поведенческие тесты, используя Behat для моего проекта. Поскольку я пытаюсь понять, как работает Behat, я ссылаюсь на пример в официальной документации Behat.

Я создал файл объектов со следующим определением

Feature: ls
    In order to see the directory structure
    As a UNIX user
    I need to be able to list the current directory's contents

    Scenario: List 2 files in a directory
        Given I am in a directory "test"
        And I have a file named "foo"
        And I have a file named "bar"
        When I run "ls"
        Then I should get:
            """
            bar
            foo
            """

Это мой тестовый класс

class FeatureContext extends SilverStripeContext
{
    /**
     * @Given I am in a directory :arg1
     */
    public function iAmInADirectory($arg1)
    {
        return new PendingException();
    }

    /**
     * @Given I have a file named :arg1
     */
    public function iHaveAFileNamed($arg1)
    {
        return new PendingException();
    }

    /**
     * @When I run :arg1
     */
    public function iRun($arg1)
    {
        return new PendingException();
    }

    /**
     * @Then I should get:
     */
    public function iShouldGet(PyStringNode $string)
    {
        assertEquals(1, 1);
    }
}

Когда я запускаю тесты, он пропускает методы тестирования без выполнения утверждений. Как видите, я запускаю утверждение в последнем методе тестирования. Я пытался использовать PHP утверждение единицы тоже PHPUnit_Framework_Assert::assertEquals(). Это только не работает и продолжает пропускать шаги. Как я могу это исправить?

Это вывод в терминале

1 scenario (1 skipped)
5 steps (5 skipped)
0m1.13s (45.76Mb)
Killing test session environment... done!

По крайней мере, он не должен пропускать последний шаг / метод.

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