-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Frame and tests for the database #2
base: main
Are you sure you want to change the base?
Conversation
- checkUserByEmail(const std::string &email) -> bool - checkUserByUsername(const std::string &username) -> bool
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Оцениваю на 10, единственное кажется, что на выходе из ваших классов уже должны быть какие-то классы из доменной модели бизнес логики вашего приложения, чтобы не парсить сначала вывод от базы данных в json, а потом json в классы
BidsTable(std::shared_ptr<IDatabase> client); | ||
|
||
json addBid(const json &info) const; | ||
json deleteBid(const size_t id) const; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
в объявлении обычно const у value не пишут
class IDatabase | ||
{ | ||
public: | ||
virtual json createTable(json) = 0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
кажется немного странно конвернтировать из представления базы данных в json, чтобы потом json cконвертировать уже в классы вашей бизнес логики. возможно было бы лучше возвращать тут std::string
return data; | ||
} | ||
|
||
static inline std::shared_ptr<PostgreSQL> client; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не нужно делать static объекты - глобальные состояния это всегда плохо (если они не const). Gtest специально для каждого теста создает новый экземпляр BaseTestConnection, чтобы он не мог быть в каком-то промежуточном состоянии от предыдущих тестов. Через static вы эту логику меняете, так, что теперь любой тест, который сломает client или connection может сломать все тесты сразу
No description provided.