Как правильно добавить собственный метод Helper для набора модульных тестов в Codeception? - PullRequest
1 голос
/ 26 июня 2019

Я пытаюсь добавить пользовательский вспомогательный метод в набор модульных тестов, но при запуске теста я получаю Fatal error: Uncaught ArgumentCountError: Too few arguments to function ошибку.

Это то, что я имею до сих пор

  1. Добавление метода в _support / Helper / Unit.php
  2. Выполнение команды сборки
  3. Установка актера в suite.yml
  4. Вызов метода через актера
  5. Выполнение теста

Когда я запускаю тест, я получаю:

ArgumentCountError: Too few arguments to function ExampleTest::__construct(), 0

_support / Helper / Unit.php:


namespace Helper;

// here you can define custom actions
// all public methods declared in helper class will be available in $I

class Unit extends \Codeception\Module
{
  public function get_hello()
  {
    return 'Hello';
  }
}

Метод испытания:

public function testMe1(\UnitTester $I)
{
  $hello = $I->get_hello();
  $this->assertEquals(2, $hello);
}
# Codeception Test Suite Configuration

#

# Suite for unit (internal) tests.

class_name: UnitTester
modules:
  enabled:
    - Asserts
    - \Helper\Unit

Почему testme1 () не принимает никаких аргументов? Какой шаг я пропускаю?

1 Ответ

1 голос
/ 26 июня 2019

Методы модульных тестов не передают актера в качестве параметра.

Вы можете вызвать их на $this->tester, как в в этом примере

function testSavingUser()
{
    $user = new User();
    $user->setName('Miles');
    $user->setSurname('Davis');
    $user->save();
    $this->assertEquals('Miles Davis', $user->getFullName());

    $this->tester->seeInDatabase('users', ['name' => 'Miles', 'surname' => 'Davis']);
}
...