Тестирование модели с вложенным logi()

Всё про тестирование в Yii 2.0
Ответить
Аватара пользователя
Chelobaka
Сообщения: 201
Зарегистрирован: 2018.06.01, 09:54

Тестирование модели с вложенным logi()

Сообщение Chelobaka » 2019.07.23, 11:03

Здравствуйте, только начинаю свой путь в тестировании приложения.
Возник такой вопрос.
Есть статический метод который я хочу проверить:

Код: Выделить всё

 public static function login($email, $password, $duration = 0)
    {
        try {
            /** @var  common\models\User $user */
            $user = User::findOne(['email' => $email]);

            if (!$user || !Yii::$app->security->validatePassword($password, $user->password_hash)) {
                return false;
            }

            return Yii::$app->user->login($user, $duration);

        } catch (\Throwable $e) {
            return false;
        }
    }
Проверяю так (Unit test):

Код: Выделить всё

        expect(AService::login('some@rmeai.ru', 'some_password', 0))->false();
То есть я передаю неправильные данные но AService::login возвращает true; хотя такого пользователя нет.
Не ясно как возникает true если на этапе проверки существования пользователя вернет false. Спасибо.

Аватара пользователя
Chelobaka
Сообщения: 201
Зарегистрирован: 2018.06.01, 09:54

Re: Тестирование модели с вложенным logi()

Сообщение Chelobaka » 2019.07.23, 11:08

Возможно except не совсем тут подходит.
Сделал проверку

Код: Выделить всё

        $this->assertFalse(AuthService::login('some@rmeai.ru', 'some_password', 0));
но когда вввел правильные данные и ожидал true то вернуло все равно false;

Ответить