Как бы вы протестировали этот запрос / функцию SQLAlchemy Core? - PullRequest
0 голосов
/ 05 февраля 2020

Я работаю над тем, чтобы научиться правильно тестировать юнит. С учетом этой функции ...

def get_user_details(req_user_id):
    users = sa.Table('users', db.metadata, autoload=True)

    s = sa.select([users.c.username,
                   users.c.favorite_color,
                   users.c.favorite_book
                   ]).select_from(users)

    s = s.where(users.c.user_id == req_user_id)

    result = db.connection.execute(s).fetchone()
    return dict(result)

... как правильно ее тестировать?

Вот где я сейчас ...

  1. Из того, что я прочитал, тестирование "конструкции" запроса не является необходимым, поскольку оно является частью уже хорошо протестированной библиотеки SQLAlchemy. Так что мне не нужно тестировать сгенерированный SQL, верно? Но я должен проверить переданные параметры, и если да, то как?
  2. Я читал о насмешливом ответе, который приходит от db.connection.execute, но как это действительно проверяет что-нибудь? В конечном счете, я хочу убедиться, что функция генерирует правильный SQL и получает правильный результат базы данных?

Любой совет / руководство очень ценится. Спасибо!

...