Ошибка утверждения, что 1 соответствует ожидаемым 6

#php #html #object #testing

#php #HTML #объект #тестирование

Вопрос:

я получаю этот тест, и мне нужно написать код, который пройдет.

Но только то, что я могу получить: «Не удалось подтвердить, что 1 соответствует ожидаемым 6 » если я возвращаю 6, я получаю » Слишком мало аргументов для работы в строке 18 и ровно 3 ожидаемых «.

Это тест :

     public function powerTest()
{
    $calculator = new Calculator();

    $this->assertEquals(6, $calculator->power(1,2,3));
    $this->assertEquals(0, $calculator->power());
}
 

Это мой код :

     public function power(int $int, int $int1, int $int2)
{
    return 1;
}
 

Комментарии:

1. Я думаю, что это говорит о том, что вам нужно изменить return 1; , чтобы быть правильным кодом для вычисления нужного вам значения.

Ответ №1:

Утверждения по определению требуют, чтобы условие было истинным; в противном случае они генерируют исключение. В этом случае ваше первое утверждение требует, чтобы результат $calculator->power(1, 2, 3) равнялся 6, чего не происходит. Он возвращает 1.

6 ! = 1, поэтому он завершается неудачей.

Второй не предоставляет аргументов функции power $calculator->power() . Ваша функция power имеет 3 аргумента, и все они обязательны. Не предоставление достаточного количества аргументов приведет к ошибке слишком мало аргументов.

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

 function foo($bar = true)